求助
  • 板块CF2A Winner
  • 楼主Kclet
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/5/17 22:25
  • 上次更新2023/11/4 23:07:51
查看原帖
求助
521269
Kclet楼主2021/5/17 22:25

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;
}


2021/5/17 22:25
加载中...