WA一半求调
查看原帖
WA一半求调
415320
没见过AC楼主2023/5/22 20:32
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+1000;
typedef long long ll;
inline ll read()
{
	ll n=0,x=1;char ch=getchar();
	if(ch=='-') x=-1;
	while(ch<'0'||'9'<ch)ch=getchar();
	while(ch>='0'&&ch<='9'){n=n*10+ch-'0';ch=getchar();}
	return n*x;
}
ll ans=0;
ll m,n,d;
ll a[N],b[N];
bool cmp(int a,int b) {
	return a>b;
}
int main()
{
	n=read();
	m=read();
	d=read();
	for(int i=1;i<=n;i++)
	{
		a[i]=read();
	}
	for(int i=1;i<=m;i++)
	{
		b[i]=read();
	}
	sort(a+1,a+1+n,cmp);
	sort(b+1,b+1+m,cmp);
	int i=1,j=1;
	while(i<=n&&j<=m){
		while(b[j]>a[i]+d&&j<=m) {
			j++;
		}
		if(i<=n&&j<=m)
		if(abs(b[j]-a[i])<=d){
			cout<<b[j]+a[i];
			return 0;
		}
		while(a[i]>b[j]+d&&i<=n){
			i++;
		}
		if(i<=n&&j<=m)
		if(abs(b[j]-a[i])<=d){
			cout<<b[j]+a[i];
			return 0;
		}
		if(i==n+1)
		{
			for(int k=1;k<=m;k++)
			{
				if(abs(b[k]-a[n])<=d)
				{
					cout<<a[n]+b[k];
					return 0;
				}
			}
		}
		if(j==m+1)
		{
			for(int k=1;k<=n;k++)
			{
				if(abs(b[m]-a[k])<=d)
				{
					cout<<a[k]+b[m];
					return 0;
				}
			}
		}
	}
	cout<<-1;
	return 0;
}
2023/5/22 20:32
加载中...