View Code of Problem 100

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
typedef struct m{
	char name[100];
	int time;
	int score;
}music;
bool cmp(music m,music m1){
	if(m.score!=m1.score)
	return m.score>m1.score;
	else return strcmp(m.name,m1.name)<0;
}
int main() {
	music m1[120];
	int n;
	while(scanf("%d",&n)!=EOF&&n!=0){
	for(int i=0;i<n;i++)
	{
		cin>>m1[i].name;
		int m,s;
		scanf("%d:%d",&m,&s);
		m1[i].time=m*60+s;
		m1[i].score=0;
	}
	int m;
	cin>>m;
	music m2;
	for(int i=0;i<m;i++)
	{
		cin>>m2.name;
		int m,s;
		scanf("%d:%d",&m,&s);
		m2.time=m*60+s;
		for(int j=0;j<n;j++){
			if(strcmp(m2.name,m1[j].name)==0){
			 	m1[j].score=m1[j].score+(5*m2.time/m1[j].time);
			 }
		}
	}
	sort(m1,m1+n,cmp);
	for(int i=0;i<n;i++){
		printf("%s %d\n",m1[i].name,m1[i].score); 
	}
	
	}
	return 0;
	}

Double click to view unformatted code.


Back to problem 100