基础题。
#include <iostream>
#include <string>
using namespace std;
struct student
{
int solve; //解题数
string time; //用时
}stu[100];
int main()
{
int N;
int numLevel[6]; //每个等级的学生人数
while (cin >> N)
{
if (N < 0)
break;
memset(numLevel, 0, sizeof(numLevel));
for (int i = 0; i < N; i++)
{
cin >> stu[i].solve >> stu[i].time;
++numLevel[stu[i].solve];
}
for (int i = 0; i < N; i++)
{
if (stu[i].solve == 5) cout << 100 << endl;
else if (stu[i].solve == 0) cout << 50 << endl;
else
{
int rank = 1; //该学生在其等级内的排名
for (int j = 0; j < N; j++)
{
if (stu[j].solve == stu[i].solve && stu[j].time < stu[i].time)
++rank;
}
if (rank <= numLevel[stu[i].solve] / 2) //排名在前一半
cout << 100 - (5 - stu[i].solve) * 10 + 5 << endl;
else
cout << 100 - (5 - stu[i].solve) * 10 << endl;
}
}
cout << endl;
}
return 0;
}
继续加油。