ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c++(函数简写,sort排序,前端和)

2022-01-29 19:00:44  阅读:213  来源: 互联网

标签:sort va vb 10010 int rep c++ 简写 sumb


牛客寒假集训营1:小朋友玩游戏

#include <bits/stdc++.h>   //c++万能头文件
using namespace std;
#define rep(i,a,n) for(int i=a;i<=n;i++)  //函数简写
/*bool cmp(int xx,int yy){
    return xx>yy;
}*/  //cmp可替代greater<int>()
int va[10010], vb[10010];
int suma[10010], sumb[10010];
int T, A, B, n;
int main() {
    cin >> T; //scanf("%d",&T);
    while (T--) {
        cin >> A >> B >> n;
        rep(i, 1, A) cin >> va[i];
        rep(i, 1, B) cin >> vb[i];
        int maxb = min(B / 2, n);
        if (maxb + A < n) {
            puts("-1");
            continue;
        }
        sort(va + 1, va + A + 1, greater<int>()); //排好序  下面遍历各种前端和的情况求最大幸福度
        sort(vb + 1, vb + B + 1, greater<int>());
        rep(i, 1, A) suma[i] = suma[i - 1] + va[i];    //一维数组前端和
        rep(i, 1, B) sumb[i] = sumb[i - 1] + vb[i];
        int ans = -1;              //不熟了开始
        rep(ia, 0, A) {
            int ib = n - ia;
            if (ib > maxb || ib < 0)
                continue;
            else
                ans = max(ans, suma[ia] + sumb[ib]);
        }
        cout << ans << endl;
    }
}

标签:sort,va,vb,10010,int,rep,c++,简写,sumb
来源: https://blog.csdn.net/jc0620/article/details/122746533

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有