PAT甲级1062 Talent and Virtue:[C++题解]结构体、哈希表
生活随笔
收集整理的這篇文章主要介紹了
PAT甲级1062 Talent and Virtue:[C++题解]结构体、哈希表
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 題目分析
- 題目來(lái)源
題目分析
來(lái)源:acwing
分析:
分4個(gè)vector,單獨(dú)排序即可。
ac代碼
#include<bits/stdc++.h> using namespace std;const int N = 1e5 +10; int n ,l ,h; int d[N],x[N]; struct Person{string id;int de,cai;int total;bool operator<(const Person& t)const{if(total != t.total) return total > t.total;else if(de != t.de) return de > t.de;return id < t.id;}};vector<Person> persons[4]; unordered_map<string,Person> mp;int main(){cin >> n >> l >> h;int cnt = 0;for(int i =0 ;i<n; i++){char id[10];int a, b;scanf("%s%d%d",id,&a,&b);if( a <l || b<l) continue;else{cnt++;mp[id].id =id, mp[id].de = a, mp[id].cai = b, mp[id].total = a+b;if( a>=h && b>=h)persons[0].push_back(mp[id]);else if(a>=h) persons[1].push_back(mp[id]);else if( a >= b) persons[2].push_back(mp[id]);else persons[3].push_back(mp[id]);}}cout<<cnt<<endl;for(int i = 0; i<4;i++){auto s = persons[i];sort(s.begin(),s.end());for(auto person : s) printf("%s %d %d\n",person.id.c_str(), person.de,person.cai);}}題目來(lái)源
PAT甲級(jí)1062 Talent and Virtue
https://www.acwing.com/problem/content/1550/
總結(jié)
以上是生活随笔為你收集整理的PAT甲级1062 Talent and Virtue:[C++题解]结构体、哈希表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PAT甲级1056 Mice and R
- 下一篇: PAT甲级1065 A+B and C