#include<stdio.h> #include<algorithm> #include<string> #include<iostream> using namespace std; struct music{ string name; int grade; }msc[100]; bool cmp(music a,music b) { if(a.grade==b.grade) return a.name<b.name; else return a.grade>b.grade; } int main() { string str2[10000];double a[100],b[10000]; int c,d,m,n; while(scanf("%d",&n)!=EOF&&n!=0) { for(int i=0;i<n;i++) { cin>>msc[i].name; scanf("%d:%d",&c,&d); a[i]=c*60+d; } scanf("%d",&m); for(int i=0;i<m;i++) { cin>>str2[i]; scanf("%d:%d",&c,&d); b[i]=c*60+d; } for(int i=0;i<n;i++) { msc[i].grade=0; for(int j=0;j<m;j++) { if(str2[j]==msc[i].name) { if(b[j]/a[i]>=0.2&&b[j]/a[i]<0.4) msc[i].grade+=1; else if(b[j]/a[i]>=0.4&&b[j]/a[i]<0.6) msc[i].grade+=2; else if(b[j]/a[i]>=0.6&&b[j]/a[i]<0.8) msc[i].grade+=3; else if(b[j]/a[i]>=0.8&&b[j]/a[i]<1) msc[i].grade+=4; else if(b[j]/a[i]==1) msc[i].grade+=5; } } } sort(msc,msc+n,cmp); for(int i=0;i<n;i++) { cout<<msc[i].name<<" "<<msc[i].grade<<endl; } } return 0; } |
Double click to view unformatted code.