B4033 [语言月赛 202409] 考试 题解

存下输赢代价,计算时先减为平局,判断输赢,如果还是输,那继续加一变为胜利这局,判断输赢。

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e6+10;
int n;
int a[N];
int b[N];
int c[N];
int main(){
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
c[i]=b[i]-a[i];
}
int x=0,y=0;
for(int i=1;i<=n;i++){
if(c[i]>0){
y++;
}
if(c[i]<0){
x++;
}
}
sort(c+1,c+n+1);
int ans=0;
for(int i=1;i<=n;i++){
if(x>y){
break;
}
if(c[i]<0){
continue;
}
else if(c[i]>0){
ans+=c[i];
y--;
}
if(x>y){
break;
}
ans++;
x++;
}
cout<<ans;
return 0;
}
posted @   sad_lin  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示