View Code of Problem 100

#include<stdio.h>
#include<string.h>
int main(){
	char song[100][40];
	char record[40];
	int st[100],p[100],n,m,sm,ss,max,maxid;
	double rate;
	while(scanf("%d",&n)!=EOF){
		if(n==0)
			break;
		for(int i=0;i<n;i++){
			scanf("%s",song[i]);
			scanf("%d:%d",&sm,&ss);
			st[i]=sm*60+ss;
			p[i]=0;
		} 
		scanf("%d",&m);
		while(m--){
			scanf("%s",record);
			scanf("%d:%d",&sm,&ss);
			for(int i=0;i<n;i++){
				if(strcmp(song[i],record)==0){
					rate=(sm*60+ss)*1.0/st[i];
					if(rate<0.2){
						p[i]+=0;
					}
					else if(rate>=0.2&&rate<0.4){
						p[i]+=1;
					}
					else if(rate>=0.4&&rate<0.6){
						p[i]+=2;
					}
					else if(rate>=0.6&&rate<0.8){
						p[i]+=3;
					}
					else if(rate>=0.8&&rate<1){
						p[i]+=4;
					}
					else if(rate==1){
						p[i]+=5;
					}
				} 
			}
		}
		max=-1;
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				if(p[j]>max){
					max=p[j];
					maxid=j;
				}
				else if(p[j]==max){
					if(strcmp(song[j],song[maxid])<0){
						maxid=j;
					}
				}
			}
			printf("%s %d\n",song[maxid],p[maxid]);
			p[maxid]=0;
			max=-1;
		}
//		for(int i=0;i<n;i++){
//			printf("%d ",p[i]);
//		}
	}
}

Double click to view unformatted code.


Back to problem 100