#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int n;
int b[1005] = { 0 };
int sum[100] = { 0 };
int max[100] = { 0 };
int cnt[100][1005] = { 0 };
struct win {
char a[35];
int p;
int level;
}q[1005];
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%s%d", q[i].a, &q[i].p);
q[i].level = i;
}
for (int i = 1; i <= n; i++) {
if (b[i] == 0) {
for (int j = i; j <= n; j++) {
if (!strcmp(q[i].a,q[j].a)) {
b[j] = -1;
sum[i] += q[j].p;
cnt[i][j] = q[j].p;
q[j].p = 0;
max[i] = q[j].level;
}
}
}
else {
continue;
}
}
int max1 = 0;
int s=0;
int judge1=0;
int judge2=0;
for (int i = 1; i <= n; i++) {
if (sum[i] > max1) {
max1 = sum[i];
s = q[i].level;
}
else if (sum[i] == max1) {
int MAXN = max1;
for (int j = 1; j <= n; j++) {
judge1 += cnt[i][j];
judge2 += cnt[s][j];
if (judge1 == MAXN) {
s = q[i].level;
break;
}
else if (judge2 == MAXN) {
s = q[s].level;
break;
}
}
}
}
printf("%s", q[s].a);
return 0;
}
全是数组和结构 可能有点乱 麻烦大佬QAQ