题目
思路
代码
#include<iostream>
#include<algorithm>
using namespace std;
const int N=5e4+10;
typedef pair<int,int> PII; //因为要以s和w的和来排序,所以可以用pair对
PII cow[N];
int n,w,s;
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%d",&w,&s);
cow[i]={w+s,w};
}
sort(cow,cow+n); //排序
int res=-2e9,sum=0;
for(int i=0;i<n;i++)
{
w=cow[i].second,s=cow[i].first-w;
res=max(res,sum-s); //先算当前的风险值,因为算当前牛的风险值的时候是不加上自己重量的
sum+=w; //再加上自己重量,以便算后面的牛的风险值
}
printf("%d",res);
return 0;
}