AcWing 125. 耍杂技的牛 C
原题链接
中等
作者:
LaChimere
,
2021-06-14 17:44:03
,
所有人可见
,
阅读 258
C
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#define MAXSIZE 50010
#define max(a,b) ((a)>(b)?(a):(b))
int n;
struct Cow {
long long weight;
long long strength;
} cows[MAXSIZE];
int compCow(const void *pc1, const void *pc2) {
struct Cow *cow1 = (struct Cow*) pc1;
struct Cow *cow2 = (struct Cow*) pc2;
if (cow1->weight+cow1->strength < cow2->weight+cow2->strength) {
return -1;
} else if (cow1->weight+cow1->strength > cow2->weight+cow2->strength) {
return 1;
}
return 0;
}
void init() {
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
scanf("%lld%lld", &cows[i].weight, &cows[i].strength);
}
qsort(cows, n, sizeof(struct Cow), compCow);
}
int main() {
init();
long long totalRisk = LLONG_MIN, risk = 0;
for (int i = 0; i < n; ++i) {
risk -= cows[i].strength;
totalRisk = max(totalRisk, risk);
risk += cows[i].weight + cows[i].strength;
}
printf("%lld\n", totalRisk);
return 0;
}