View Code of Problem 100

#include<bits/stdc++.h>
using namespace std;

struct song{
	string name;
	int len;
	int score;
};

bool cmp(song a,song b){
	if(a.score==b.score)
		return a.name<b.name;
	else
		return a.score>b.score;
}

int main() {

	int n;
	while(cin>>n&&n!=0){
		getchar();
		string name;
		int m,s;
		song son[n];
		for(int i=0;i<n;i++){
			cin>>name;
			scanf("%d:%d",&m,&s);
			getchar();
			son[i].name=name;
			son[i].len=m*60+s;
			son[i].score=0;
		}
		int t;
		cin>>t;
		getchar();
		for(int i=0;i<t;i++){
			cin>>name;
			scanf("%d:%d",&m,&s);
			int now=m*60+s;
			double sum=0;
			int who=0;
			for(int j=0;j<n;j++){
				if(son[j].name==name){
					sum=son[j].len;
					who=j;
				}
			}
			if(now<sum/5){
				continue;
			}else if(now<sum/5*2){
				son[who].score+=1;
			}else if(now<sum/5*3){
				son[who].score+=2;
			}else if(now<sum/5*4){
				son[who].score+=3;
			}else if(now<sum/5*5){
				son[who].score+=4;
			}else if(now==sum){
				son[who].score+=5;
			}
		}
		sort(son,son+n,cmp);
		for(int i=0;i<n;i++){
			cout<<son[i].name<<" "<<son[i].score<<endl;
		}
	}

	return 0;
}

Double click to view unformatted code.


Back to problem 100