#include<stdio.h> #include<string.h> typedef struct{ char name[200]; int sec; int score; }song; int cmp(const void*a,const void*b){ return (*(song *)b).score-(*(song *)a).score; } int score(float n,float m){ float score = (n*1.0/m*1.0 )*100.0; if(score == 100) return 5; else if(score >= 80) return 4; else if(score >= 60) return 3; else if(score >= 40) return 2; else if(score >= 20) return 1; else return 0; } int main(){ int n; while(scanf("%d",&n)!=EOF&&n!=0){ int min,sec; song a[n]; int i,j,k; for(i = 0;i < n; i++){ scanf("%s",a[i].name); scanf("%d:%d",&min,&sec); a[i].sec = min*60 + sec; a[i].score = 0; } int t; scanf("%d",&t); for(i = 0;i < t; i++){ char temp[200]; scanf("%s",temp); scanf("%d:%d",&min,&sec); int time = min*60 + sec; for(j = 0;j < n; j++){ if(strcmp(temp,a[j].name)==0){ a[j].score = a[j].score + score(time,a[j].sec); } } } qsort(a,n,sizeof(song),cmp); for(i = 0;i < n; i++){ printf("%s %d\n",a[i].name,a[i].score); } } } |
Double click to view unformatted code.