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