求助,压缩有什么问题
查看原帖
求助,压缩有什么问题
287948
MlvPro楼主2020/9/12 10:44

156都爆一个点 没想明白 全是该输出NO的输了数字

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<map>
using namespace std;
long long n,k,b,c,tot;
long long a[2000006],d[2000006];
long long maxx=-0x7fffffff;
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		scanf("%lld%lld",&b,&c);
		if(!a[b])
		d[++tot]=b;
		a[b]+=c;
	}
	bool fl=0;
	if(!k)
	{
		for(int i=1;i<=tot;i++)
		if(a[d[i]]>=2){maxx=max(maxx,d[i]*a[d[i]]);fl=1;}
		if(fl)cout<<maxx;else cout<<"NO";return 0;
	}
	for(int i=1;i<=tot;i++)
	{
		if(a[d[i]]&&a[d[i]+k])
		{
			maxx=max(maxx,min(a[d[i]],a[d[i]+k])*(2*d[i]+k));
			fl=1;
		}
	}
	if(fl)
	cout<<maxx;
	else cout<<"NO";
	return 0;
}
2020/9/12 10:44
加载中...