社区讨论
关于今天下午月赛T3
学术版参与者 9已保存回复 33
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 33 条
- 当前快照
- 1 份
- 快照标识符
- @lo2pr98b
- 此快照首次捕获于
- 2023/10/23 17:46 2 年前
- 此快照最后确认于
- 2023/11/09 21:34 2 年前
写了一个贪心。感觉没有问题。
但是大样例没过。只拿了16分



求锐评。
CPP#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10;
#define int long long
int a[N],b[N];
signed main()
{
int n,m,k;
cin>>n>>m>>k;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=m;i++) cin>>b[i];
sort(a+1,a+n+1),sort(b+1,b+m+1);
int l1=1,r1=n,l2=1,r2=m,ans=0;
while(1){
if(l1>r1){
for(int i=l2;i<=r2;i++) ans+=b[i];
break;
}
if(l2>r2){
for(int i=l1;i<=r1;i++) ans+=a[i];
break;
}
if(a[r1]*2>b[r2]+k) ans+=(a[r1]*2+b[l2]),r1--,l2++;
else if(a[r1]*2<b[r2]+k) ans+=(a[l1]+b[r2]+k),l1++,r2--;
else{
if(a[l1]>=b[l2]) ans+=(a[r1]*2+b[l2]),r1--,l2++;
else ans+=(a[l1]+b[r2]+k),l1++,r2--;
}
}
cout<<ans<<endl;
return 0;
}
回复
共 33 条回复,欢迎继续交流。
正在加载回复...