统计射击成绩

统计射击成绩[(https://www.online1987.com/统计射击比赛成绩/)]

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
	int N = 0;
	char c = '0';
	cin >> N;
	vector<vector<int>> score(N, vector<int>(2,0));//先初始化才能赋值,否则需要push_back();
	for (int i = 0; i < N; ++i) {
		if(i==12) cin >> score[i][0];//最后一位没有逗号
		else
			cin >> score[i][0]>>c;//处理逗号
	}
	for (int i = 0; i < N; ++i) {
		if(i == 12) cin >> score[i][1];
		else
		cin >> score[i][1] >> c;
	}
	sort(score.begin(), score.end());
	vector<vector<int>> res;
	int p = N - 1;//倒着取数
	while (p>=2) {
		if (score[p][0] == score[p - 2][0]) {
			res.push_back({score[p][1] + score[p - 1][1] + score[p - 2][1] , score[p][0]});
		}//因为接下来要使用sort()对分数排序,所以把分数插在第一行,ID在第二行。
		while (score[p][0] == score[p - 1][0]) {
			--p;
			if (p == 0) break;//防止p-1越界
		}//while循环使p到相同元素的边界
		--p;//到下一个元素
	}
	sort(res.begin(), res.end());//对二维数组使用sort,相当于字典排序。
	for (int i = res.size()-1; i>=0; --i) {
		cout << res[i][1] << endl;
	}
	//for (int i = res.size() - 1; i >= 0; --i) {
		//cout << res[i][0] << endl;测试计算结果
	//}
	return 0;
}
posted @   chunbai11  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示