#include<iostream> #include<cstring> #include<algorithm> using namespace std; int fun(double x) { int score; if(x>=0&&x<1.0/5)score=0; else if(x>=1.0/5&&x<2.0/5)score=1; else if(x>=2.0/5&&x<3.0/5)score=2; else if(x>=3.0/5&&x<4.0/5)score=3; else if(x>=4.0/5&&x<5.0/5)score=4; else score=5; return score; } struct song{ char name[31]; int timeM; int timeS; int score; }; bool cmp(struct song m,struct song n) { if(m.score>n.score)return true; else if(m.score==n.score) { if(strcmp(m.name,n.name)<0) return true; else return false; } else return false; } int main() { int n,m; char ch=':'; while(cin>>n) { if(n==0)break; struct song p[n]; for(int i=0;i<n;i++) { cin>>p[i].name>>p[i].timeM>>ch>>p[i].timeS; } cin>>m; struct song q[m]; for(int i=0;i<m;i++) { cin>>q[i].name>>q[i].timeM>>ch>>q[i].timeS; } for(int i=0;i<n;i++) { p[i].score=0; for(int j=0;j<m;j++) { if(strcmp(p[i].name,q[j].name)==0) p[i].score+=fun((q[j].timeM*60+q[j].timeS)*1.0/(p[i].timeM*60+p[i].timeS)); } } sort(p,p+n,cmp); for(int i=0;i<n;i++) cout<<p[i].name<<" "<<p[i].score<<endl; } return 0; } |
Double click to view unformatted code.