#include<stdio.h> #include<string.h> struct music { char name[50]; int m,s; int score; }num[105]; int main() { int n, t,temp; char s[50],a[50]; int x, y,i,j; scanf("%d", &n); while(n != 0) { for(i = 0; i < n; i++) { scanf("%s", num[i].name); scanf("%d:%d", &num[i].m, &num[i].s); num[i].s += 60 * num[i].m; num[i].score = 0; } scanf("%d", &t); while(t--) { scanf("%s", s); scanf("%d:%d", &x, &y); y += x * 60; for(i = 0; i < n ;i++) if(strcmp(s, num[i].name) == 0) num[i].score += 5.0 * y / num[i].s; } for(i = 1; i < n ; i++) { for(j=n-1;j>=i;j--) { if(num[j].score>num[j-1].score) { strcpy(a,num[j].name); strcpy(num[j].name,num[j-1].name); strcpy(num[j-1].name,a); temp=num[j].m; num[j].m=num[j-1].m; num[j-1].m=temp; temp=num[j].s; num[j].s=num[j-1].s; num[j-1].s=temp; temp=num[j].score; num[j].score=num[j-1].score; num[j-1].score=temp; } } } for(i = 1; i < n ; i++) { for(j=n-1;j>=i;j--) { if(num[j].score==num[j-1].score) { if(strcmp(num[j].name,num[j-1].name)<0) { strcpy(a,num[j].name); strcpy(num[j].name,num[j-1].name); strcpy(num[j-1].name,a); temp=num[j].m; num[j].m=num[j-1].m; num[j-1].m=temp; temp=num[j].s; num[j].s=num[j-1].s; num[j-1].s=temp; temp=num[j].score; num[j].score=num[j-1].score; num[j-1].score=temp; } } } } for(i=0;i<n;i++) { printf("%s %d\n",num[i].name,num[i].score); } scanf("%d", &n); } return 0; } |
Double click to view unformatted code.