AcWing 125. 耍杂技的牛
原题链接
中等
作者:
我要出去乱说
,
2021-02-01 10:51:24
,
所有人可见
,
阅读 412
#include <iostream>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
const int N = 5e4 + 10;
int n;
PII cow[N];
int main()
{
cin >> n;
for (int i = 0; i < n; i ++ )
{
int w, s;
cin >> w >> s;
cow[i] = {w + s, w};
}
sort(cow, cow + n); //按牛的w+s从小到大排序
int res = -2e9, sum = 0;
for (int i = 0; i < n; i ++ )
{
int w = cow[i].second, s = cow[i].first - w;
res = max(res, sum - s); //最大风险的最小值
sum += w; //牛体重累加
}
cout << res << endl;
return 0;
}
有个小地方不懂, 不是求最小值麽, 为什么取的是max
有个问题,如果输入样例为
的话,结果应该是2+3-10 = -5,但程序给出结果为-2,希望有人帮我解惑
不是哦,按y总题解应该是w+s升序排列,
这个结果是
原来如此,大师我悟了。感谢🤩