洛谷P1781 宇宙总统

https://www.luogu.org/problem/show?pid=1781

 

高精比较大小;

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
#include<cmath>
using namespace std;
int n,len,maxn;
int a[30][120];
char C[120];
int q[100],cnt;
void coutt()
{
        int t=q[1];
        printf("%d\n",t);
        for(int i=a[t][0];i>=1;i--)
            printf("%d",a[t][i]);
    return ;
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        cin>>C;len=strlen(C);
        for(int j=len-1;j>=0;j--)
            a[i][len-j]=C[j]-'0';
        a[i][0]=len;
        if(len>maxn)    maxn=len,q[cnt=1]=i;
        else
        if(len==maxn)    q[++cnt]=i;
    }
    if(cnt==1)
    {
        coutt();
    }else
    {
        int maxw=1;
        for(int i=2;i<=cnt;i++)
        {
            int t=q[i],j=a[t][0];
            while(a[maxw][j]==a[t][j]&&j>=1) j--;
            if(a[maxw][j]<a[t][j])    maxw=t;
        }
        q[cnt=1]=maxw;
        coutt();
    }
    return 0;
}

 

posted @ 2017-10-19 18:29  浪矢-CL  阅读(272)  评论(0编辑  收藏  举报