JDOJ-1388: VIJOS-P1257 水王争霸

[文章目录]

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;
}

发表评论

邮箱地址不会被公开。 必填项已用*标注