RT,感觉没啥问题可以帮忙找下锅或者提供错误的数据吗qwq
#include<bits/stdc++.h>
using namespace std;
const int N = 1000 + 5;
int n,y,dep = 1,zb;
struct Node {
string s;
int ans,maxxx = 0;
};
Node q[N];
string x,w;
int z[N];
int maxx = - N * N;
int main() {
cin >> n;
for(int i = 1; i <= n; i++) {
bool flag = 1;
cin >> x >> y;
for(int j = 1; j <= dep; j++) {
if(x == q[j].s) {
if(q[j].ans + y == q[j].maxxx) {
q[j].ans += y,flag = 0;
break;
}
q[j].maxxx = max(q[j].ans,q[j].ans + y);
q[j].ans += y,flag = 0;
if(y < 0) break;
z[j] = i;
break;
}
}
if(flag) q[dep].s = x,q[dep].ans = y,z[dep++] = i;
}
for(int i = 1; i <= dep; i++) {
if(q[i].ans > maxx) maxx = q[i].ans,w = q[i].s,zb = z[i];
if(q[i].ans == maxx) {
if(zb > z[i]) maxx = q[i].ans,w = q[i].s,zb = z[i];
}
}
cout << w;
return 0;
}