#include <bits/stdc++.h> using namespace std; struct GeQu { string name; double zsj; double fs; }; bool cmp(GeQu a,GeQu b) { return a.fs>b.fs; } int main() { int n; while(cin>>n) { if(n==0) break; int i,j,index,m; struct GeQu gq[n]; string str,name,time,temp=" "; for(i=0;i<n;i++) { double sum=0; getline(cin,str); index=str.find(temp); name=str.substr(0,index); time=str.substr(index+1,str.size()); sum=(time[1]-'0')*60+(time[3]-'0')*10+time[4]-'0'; gq[i].name=name; gq[i].zsj=sum; } cin>>m; for(i=0;i<m;i++) { double sum=0; getline(cin,str); index=str.find(temp); name=str.substr(0,index); time=str.substr(index+1,str.size()); sum=(time[1]-'0')*60+(time[3]-'0')*10+time[4]-'0'; for(j=0;j<n;j++) { if(gq[i].name==name) { if(sum<=gq[i].zsj*0.2) { gq[i].fs+=0; break; } else if(sum<=gq[i].zsj*0.4) { gq[i].fs+=1; break; } else if(sum<=gq[i].zsj*0.6) { gq[i].fs+=2; break; } else if(sum<=gq[i].zsj*0.8) { gq[i].fs+=3; break; } else if(sum<gq[i].zsj) { gq[i].fs+=4; break; } else if(sum=gq[i].zsj) { gq[i].fs+=5; break; } } } } sort(gq,gq+n,cmp); for(i=0;i<n;i++) cout<<gq[i].name<<" "<<gq[i].fs<<endl; } } |
Double click to view unformatted code.