[文章目录]
Description
你的任务是公正地把这些水王按照发贴数从大到小进行排序.
输入的第一行是一个1到1000的整数N,所有水王发贴数的总长度(注意,是总长度而不是总和)不会超过10000。
理论上是高精度,然而我用c++自带的string,轻松A掉水题+1;
string,本身带有 size()函数,支持比较大小。所以,sort一下就好了。233
不过记得要用cin,如果太慢可以scanf一个char,再换成string。
#include <cstdio>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
int n;
struct node
{
string nam,sco;
}a[1100];
bool cmp(node x,node y)
{
if(x.sco.size()!=y.sco.size()) return x.sco.size()>y.sco.size();
else if(x.sco!=y.sco) return x.sco>y.sco;
else return x.nam<y.nam;
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
cin>>a[i].nam>>a[i].sco;
sort(a,a+n,cmp);
for(int i=0;i<n;i++)
cout<<a[i].nam<<endl;
return 0;
}