AcWing 782. 避嫌抢劫
原题链接
中等
作者:
nangua
,
2020-09-02 19:56:47
,
所有人可见
,
阅读 676
C++ 代码
#include <iostream>
using namespace std;
void sort(int a[],int b[],int l,int r) {
if(l>=r) return;
int i=l-1,j=r+1,mid=a[(l+r)/2];
while(i<j) {
do i++;while(a[i]<mid);
do j--;while(a[j]>mid);
if(i<j) {
int r=a[i];a[i]=a[j];a[j]=r;
r=b[i];b[i]=b[j];b[j]=r;
}
}
sort(a,b,l,j);
sort(a,b,j+1,r);
}
int main() {
int n,d,a[200010],b[200010],ans=0,m=1;
cin>>n>>d;
for(int i=1;i<=n;i++) cin>>a[i]>>b[i];
sort(a,b,1,n);
for(int i=1;i<=n;i++)
{
if(b[i]<m) continue;
else m=b[i];
for(int j=i+1;j<=n;j++)
{
if(a[j]-a[i]<d) continue;
ans=max(ans,b[i]+b[j]);
}
}
cout<<ans;
return 0;
}
m变量是什么意思呢