Day59: [PAT Class] 1083 List Grades (25 points)
Source title:
PAT from real exam:
https://pintia.cn/problem-sets/994805342720868352/problems/994805383929905152
Code:
dirty code make do and see
#include<iostream>
#include<string>
#include<sstream>
#include<vector>
#include<map>
#include<unordered_map>
#include<queue>
#include<set>
#include<list>
#include<cstdio>
#include<algorithm>
using namespace std;
int N;
typedef struct stu {
string name;
string id;
int grade;
}stu;
bool cmp(stu A,stu B) {
return A.grade > B.grade;
}
int main() {
cin >> N;
list<stu> v;
stu X;
for (int i = 0; i < N; i++) {
cin >> X.name >> X.id >> X.grade;
v.push_back(X);
}
int left, right;
cin >> left >> right;
for (auto iter = v.begin();iter!=v.end();) {
if (iter->grade<left || iter->grade>right) {
iter=v.erase(iter);
}
else iter++;
}
v.sort(cmp);
if (v.size() == 0) cout << "NONE";
else
for (auto iter = v.begin(); iter != v.end();iter++) {
cout << iter->name << " " << iter->id<<endl;
}
system("pause");
}