#include<iostream> #include<vector> #include<algorithm> using namespace std; class Music{ public: string name; double time; int grade=0; Music(string name, double time){ this->name=name; this->time=time; } }; bool cmp(Music m1, Music m2){ if(m1.grade>m2.grade) return true; else if(m1.grade==m2.grade&&m1.name<m2.name) return true; return false; } int main(){ int n, m; string name; int minute, second; double time, ltime; vector<Music> v; while(cin>>n){ if(n==0) break; for(int i=0; i<n; i++){ cin>>name; scanf("%2d:%2d", &minute, &second); time=minute*60+second; Music music(name, time); v.push_back(music); } cin>>m; for(int i=0; i<m; i++){ cin>>name; scanf("%2d:%2d", &minute, &second); ltime=minute*60+second; for(int j=0; j<v.size(); j++){ if(v[j].name==name){ if(ltime==v[j].time) v[j].grade+=5; else if(ltime>=v[j].time*0.2&<ime<v[j].time*0.4) v[j].grade+=1; else if(ltime>=v[j].time*0.4&<ime<v[j].time*0.6) v[j].grade+=2; else if(ltime>=v[j].time*0.6&<ime<v[j].time*0.8) v[j].grade+=3; else if(ltime>=v[j].time*0.8&<ime<v[j].time) v[j].grade+=4; } } } sort(v.begin(), v.end(), cmp); for(int i=0; i<v.size(); i++) cout<<v[i].name<<" "<<v[i].grade<<endl; v.clear(); } return 0; } |
Double click to view unformatted code.