求反驳
  • 板块CF1989C Two Movies
  • 楼主XYzero
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/12 20:55
  • 上次更新2024/7/12 22:30:15
查看原帖
求反驳
917025
XYzero楼主2024/7/12 20:55
#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
#define int long long
struct movie{
	int a,b,c;
}a[N];
bool cmp(movie a,movie b){
	return a.c > b.c;
}
int T,n;
signed main(){
	cin >> T;
	while(T--){
		cin >> n;
		int ans1 = 0,ans2 = 0;
		for(int i = 1;i <= n;i++)cin >> a[i].a;
		for(int i = 1;i <= n;i++){
			cin >> a[i].b;
			
		}
		for(int i = 1;i <= n;i++){
			ans1 += a[i].a;
			ans2 += a[i].b;
			a[i].c = a[i].b + a[i].a; 
		}
		sort(a + 1,a + 1 + n,cmp);
		if(ans2 > ans1){
			ans1 = 0;
			for(int i = 1;i <= n;i++){
		    if(ans1 >= ans2){
				break;
			}
			ans1 += a[i].a;
			ans2 -= a[i].b;
			
		    }	
	    }
	    else if(ans1 == ans2){
	    	cout << ans1 << "\n";
	    	continue;
		}
	    else {
	    	ans2 = 0;
	    	for(int i = 1;i <= n;i++){
		        if(ans2 >= ans1){
				   break;
			    }
				ans1 -= a[i].a;
			    ans2 += a[i].b;
			}
	    }
		cout << min(ans1,ans2) << "\n";
    }
	
	return 0;
}
2024/7/12 20:55
加载中...