1137 Final Grading (25)
Posted mr-stn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1137 Final Grading (25)相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<string> #include<algorithm> #include<map> #include<vector> using namespace std; class node{ public: string id; int p, m, f, g; bool flag; node(){p=m=f=g=-1; flag=false;} }; bool cmp(node a, node b){ if(a.g != b.g) return a.g > b.g; return a.id < b.id; } int main(){ int p, m, n, i; cin>>p>>m>>n; string id; int cnt=1, score; vector<node> v(10010); map<string, int> mmap; for(i=0; i<p; i++){ cin>>id; scanf("%d", &score); v[cnt].id=id; v[cnt].p=score; if(score<200) continue; mmap[id]=cnt++; } int index; for(i=0; i<m; i++){ cin>>id; scanf("%d", &score); index=mmap[id]; if(index!=0) v[index].m=score; } for(i=0; i<n; i++){ cin>>id; scanf("%d", &score); if(score<60) continue; index=mmap[id]; if(index!=0){ v[index].f = score; v[index].g = score; if(v[index].m>v[index].f) v[index].g=(int)(0.4*v[index].m+0.6*score+0.5); if(v[index].f>=60 && v[index].p>=200) v[index].flag=true; } } sort(v.begin(), v.begin()+cnt, cmp); for(i=0; i<cnt; i++){ if(v[i].flag){ cout<<v[i].id<<" "; printf("%d %d %d %d ", v[i].p, v[i].m, v[i].f, v[i].g); } } return 0; }
以上是关于1137 Final Grading (25)的主要内容,如果未能解决你的问题,请参考以下文章