#include<iostream> #include<cstring> #include<algorithm> using namespace std; typedef struct m{ char name[100]; int time; int score; }music; bool cmp(music m,music m1){ if(m.score!=m1.score) return m.score>m1.score; else return strcmp(m.name,m1.name)<0; } int main() { music m1[120]; int n; while(scanf("%d",&n)!=EOF&&n!=0){ for(int i=0;i<n;i++) { cin>>m1[i].name; int m,s; scanf("%d:%d",&m,&s); m1[i].time=m*60+s; m1[i].score=0; } int m; cin>>m; music m2; for(int i=0;i<m;i++) { cin>>m2.name; int m,s; scanf("%d:%d",&m,&s); m2.time=m*60+s; for(int j=0;j<n;j++){ if(strcmp(m2.name,m1[j].name)==0){ m1[j].score=m1[j].score+(5*m2.time/m1[j].time); } } } sort(m1,m1+n,cmp); for(int i=0;i<n;i++){ printf("%s %d\n",m1[i].name,m1[i].score); } } return 0; } |
Double click to view unformatted code.