View Code of Problem 100

#include<bits/stdc++.h>
using namespace std;
struct music {
	string name;
	int itime;
	int score;
};
bool cmp(music l, music r) {
	if(l.score!=r.score)
		return l.score>r.score;
	else{
		return l.name<r.name;
	}
}
int main() {
	int n;
	while (cin >> n&&n) {
		music niub[105];
		for (int i = 0; i < n; i++) {
			music ne;
			string ss;
			cin >> niub[i].name >> ss;
			int p = (ss[0] - '0') * 10 + ss[1] - '0';
			int q = (ss[3] - '0') * 10 + ss[4] - '0';
			niub[i].itime = p * 60 + q;
			niub[i].score = 0;

		}
		int m;
		cin >> m;
		for (int i = 0; i < m; i++) {
			string s1, s2;
			cin >> s1 >> s2;
			int p = (s2[0] - '0') * 10 + s2[1] - '0';
			int q = (s2[3] - '0') * 10 + s2[4] - '0';
			int newtime = p * 60 + q;
			int pp;
			for (int i = 0; i < n; i++) {
				if (niub[i].name == s1) {
					pp = i;
					break;
				}
			}
			double bi = 1.0 * newtime / niub[pp].itime;
			if (bi < 0.2)
				niub[pp].score += 0;
			else if (bi < 0.4)
				niub[pp].score += 1;
			else if (bi < 0.6)
				niub[pp].score += 2;
			else if (bi < 0.8)
				niub[pp].score += 3;
			else if (bi < 1)
				niub[pp].score += 4;
			else
				niub[pp].score += 5;
		}
		sort(niub, niub + n, cmp);
		for (int i = 0; i < n; i++)
			cout << niub[i].name << " " << niub[i].score << endl;
	}
}

Double click to view unformatted code.


Back to problem 100