0
点赞
收藏
分享

微信扫一扫

PAT甲级--1055 The World‘s Richest (25 分)

架构大数据双料架构师 2022-03-23 阅读 68
算法c++

题目详情 - 1055 The World's Richest (25 分) (pintia.cn)​​​​​​

测试点:

测试点2超时。没有分组,直接从result数组中寻找符合的富翁。

代码:

#include<bits/stdc++.h>
using namespace std;
struct Node {
	string name;
	int age, money;
};
bool cmp(Node a, Node b) {
	return a.money != b.money ? a.money > b.money : (a.age != b.age ? a.age < b.age : a.name < b.name);
}
int main()
{
	int N = 0, K = 0, M = 0;
	cin >> N >> K;
	vector<Node> v(N), result;
	for (int i = 0; i < N; ++i) { cin >> v[i].name >> v[i].age >> v[i].money; }
	sort(v.begin(), v.end(), cmp);
	vector<int> book(202, 0);
	for (int i = 0; i < N; ++i) {
		if (book[v[i].age] < 100) {
			result.push_back(v[i]);
			book[v[i].age]++;
		}
	}
	for (int i = 0; i < K; ++i) {
		cout << "Case #" << i + 1 << ":" << endl;
		int mi, ma, cnt = 0;
		cin >> M >> mi >> ma;
		for (int j = 0; j < result.size() && cnt<M; ++j) {
			if (result[j].age <= ma && result[j].age >= mi) {
				cout << result[j].name << ' ' << result[j].age << ' ' << result[j].money << endl;
				cnt++;
			}
		}
		if (cnt==0) { cout << "None" << endl; }
	}
	return 0;
}

 

举报

相关推荐

0 条评论