https://www.xinyoudui.com/ac/contest/747000D3B00037D01A43E4/problem/6948

#include<bits/stdc++.h>
using namespace std;
struct node{
  int w,s;
};
bool cmp(node a,node b){
  if(a.s==b.s)
    return a.w>b.w;
  return a.s>b.s;
}
signed main(){
  long long n;
  node x[50005];
  cin>>n;
  for(int i=1;i<=n;i++){
    cin>>x[i].w>>x[i].s;
  }
  sort(x+1,x+n+1,cmp);
  long long sum=0,mx=-INT_MAX;
  for(int i=n;i>=1;i--){
    mx=max(mx,sum-x[i].s);
    sum+=x[i].w;
  }
  cout<<mx<<endl;
  return 0;
}
1 个赞

WA50

1 个赞

已通过。

1 个赞