关于今天下午月赛T3
  • 板块学术版
  • 楼主_JF_殉情
  • 当前回复33
  • 已保存回复33
  • 发布时间2023/4/22 18:03
  • 上次更新2023/11/9 21:34:16
查看原帖
关于今天下午月赛T3
361141
_JF_殉情楼主2023/4/22 18:03

写了一个贪心。感觉没有问题。

但是大样例没过。只拿了16分

求锐评。

#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;
}

2023/4/22 18:03
加载中...