#include<iostream> #include<bits/stdc++.h> #include<string.h> #include<cstring> #include<string> #include<sstream> using namespace std; struct sing{ string name; double time; int score; }; bool cmp(sing a,sing b) { if(a.score!=b.score) return a.score>b.score; else return a.name<b.name; } int main() { int n,num; double h,m; while(cin>>n&&n!=0) { sing s[n]; string name,z; for(int i=0;i<n;i++) { cin>>name; scanf("%lf:%lf",&h,&m); s[i].name=name; s[i].time=h*60+m; s[i].score=0; } cin>>num; while(num--) { cin>>z; scanf("%lf:%lf",&h,&m); int num=h*60+m; for(int i=0;i<n;i++) { if(s[i].name==z) { if(num<s[i].time*1/5) { s[i].score+=0; } else if(num<s[i].time*2/5) { s[i].score+=1; } else if(num<s[i].time*3/5) { s[i].score+=2; } else if(num<s[i].time*4/5) { s[i].score+=3; } else if(num<s[i].time) { s[i].score+=4; } else { s[i].score+=5; } break; } } } sort(s,s+n,cmp); for(int i=0;i<n;i++) { cout<<s[i].name<<" "<<s[i].score<<endl; } } return 0; } |
Double click to view unformatted code.