距离PAT考试还有14天最重要的是做透每一题
(1)思路
排序 怎么排都可以,反正不要用cin做数据输入
充分认识到了cin的慢
#include <cstdio> #include <string> #include <vector> #include <iostream> #include <algorithm> #include <cstring> using namespace std; struct re{ char name[10]; int age; int worth; re() { memset(name,0,sizeof(name)); age=0; worth=0; } }; int n,k; bool cmp(re r1,re r2) { if(r1.worth > r2.worth) { return true; } else if(r1.worth == r2.worth) { if(r1.age < r2.age) { return true; } else if(r1.age == r2.age) { if(strcmp(r1.name,r2.name) < 0) return true; else return false; } } return false; } int main() { scanf("%d %d",&n,&k); vector<re> data; data.resize(n); for(int i=0;i<n;i++) { scanf("%s %d %d",data[i].name,&(data[i].age),&(data[i].worth)); } sort(data.begin(),data.end(),cmp); vector<int> book(201); fill(book.begin(),book.end(),0); vector<re> minidata; for(int j=0;j<n;j++) { if(book[data[j].age] < 100) { minidata.push_back(data[j]); book[data[j].age]++; } } for(int i=0;i<k;i++) { int num,amin,amax; scanf("%d %d %d",&num,&amin,&amax); vector<re> aged_data; for(int j=0;j<minidata.size();j++) { if(minidata[j].age<=amax && minidata[j].age>=amin) { aged_data.push_back(minidata[j]); } } //aged printf("Case #%d:\n",i+1); if(aged_data.size() == 0) { printf("None\n"); continue; } int datasize=aged_data.size(); num=min(datasize,num); for(int j=0;j<num;j++) { printf("%s",aged_data[j].name); printf(" %d %d\n",aged_data[j].age,aged_data[j].worth); } } return 0; }
下面是用cin的
.......
转载于:https://www.cnblogs.com/tclan126/p/8570615.html
相关资源:数据结构—成绩单生成器