PAT甲級 1055 The World's Richest (25 分) (模擬)

題目鏈接:傳送門

思路:因爲數據量不大,按照題意模擬排序輸出即可。

代碼:

#include <bits/stdc++.h>

using namespace std;

const int maxn = 1e5 + 5;


struct node {
	string name;
	int age , worth;
	bool operator < (const node b)const {
		return worth > b.worth || (worth == b.worth && age < b.age) || (worth == b.worth && age == b.age && name < b.name);
	}
}a[maxn];


int main() {
	int n , k;
	ios::sync_with_stdio(0);
	cin >> n >> k;
	for(int i = 0 ; i < n ; i++) {
		cin >> a[i].name >> a[i].age >> a[i].worth;
	}
	sort(a , a + n);
	int m , kase = 0;
	while(k--) {
		int num , l , r;
		cin >> num >> l >> r;
		cout << "Case #" << ++kase << ":\n";
		bool flag = 0;
 		for(int i = 0 ; i < n ; i++) {
			if(a[i].age >= l && a[i].age <= r) {
				num--;
				cout << a[i].name << " " <<a[i].age << " " << a[i].worth << "\n";
				flag = 1;
			}
			if(!num)break;
		}
		if(!flag)cout << "None\n"; 
	}
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章