题解 | #排名#

排名

https://www.nowcoder.com/practice/f7c80167c5b04fd2ac4b6d7080a73f01

#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct Stu{
	string seq;
	int num;
	int total;
};
bool cmp(Stu lhs, Stu rhs){
	if (lhs.total > rhs.total){
		return true;
	}
	else if (lhs.total == rhs.total&&lhs.seq < rhs.seq){
		return true;
	}
	else{
		return false;
	}
}
int main(){
	int n;
	while (scanf("%d", &n) != EOF){
		if (n == 0){
			break;
		}
		int M, G;
		scanf("%d%d", &M, &G);
		int scr[10];
		for (int i = 0; i < M; i++){
			scanf("%d", &scr[i]);
		}
		Stu sam[1000];
		for (int i = 0; i < n; i++){
			cin >> sam[i].seq;
			scanf("%d", &sam[i].num);
			sam[i].total = 0;
			for (int j = 0; j < sam[i].num; j++){
				int t;
				scanf("%d", &t);
				sam[i].total = sam[i].total + scr[t-1];
			}
		}
		sort(sam, sam + n,cmp);
		int y=0;
		for (; y < n; y++){
			if (sam[y].total < G){
				break;
			}
		}
		printf("%d\n", y);
		for (int i = 0; i < y; i++){
			cout << sam[i].seq;
			printf(" %d\n", sam[i].total);
		}
	}
}

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务