#include<bits/stdc++.h>
using namespace std;
struct node{
char school[10];
double score;
int num=0,rank=0;
friend bool operator < (node a,node b)
{
if(a.score!=b.score) return a.score>b.score;
else if(a.num!=b.num) return a.num<b.num;
else if(strcmp(a.school,b.school)!=0) return strcmp(a.school,b.school);
}
};
int main()
{
char name[10];
int n,j;
freopen("1085.txt","r",stdin);
scanf("%d",&n);
vector<node> v;
int len=0;
for(int i=0;i<n;i++)
{
node s;
scanf("%s %lf %s",&name,&s.score,s.school);
if(name[0]=='B') s.score/=1.5;
if(name[0]=='T') s.score*=1.5;
for(j=0;j<strlen(s.school);j++)
{
if(s.school[j]>='A'&&s.school[j]<='Z')
s.school[j]+=32;
}
for(j=0;j<len;j++)
{
if(strcmp(v[j].school,s.school)==0)
{
//printf("here\n");
v[j].score+=s.score;v[j].num++;break;
}
}
if(j==len)
{
s.num++;
// printf("%d\n",s.num);
v.push_back(s);
len++;
}
}
printf("%d\n",len);
len=v.size();
for(int i=0;i<len;i++)
{
j=i+1;
v[i].rank=i+1;
if(v[i].score==v[j].score&&j<len)
{
v[j].rank=v[i].rank;j++;
}
i=j;
}
sort(v.begin(),v.end());
for(int i=0;i<len;i++)
{
printf("%d %s %.0f %d\n",v[i].rank,v[i].school,v[i].score,v[i].num);
}
return 0;
}
1
最新推荐文章于 2018-10-08 16:35:12 发布