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