标签:
Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
#include<iostream> #include<cstdio> #include<cmath> #include<string> #include<queue> #include<algorithm> #include<stack> #include<cstring> #include<vector> #include<list> #include<set> #include<map> using namespace std; #define ll __int64 #define mod 100000007 #define esp 0.00000000001 const int N=1e5+10,M=1e7+10,inf=1e9+10; char a[M]; char b[M]; char c[M]; void add(char a[],char b[])//a=a+b { int i,j,k,sum=0; k=strlen(a)>strlen(b)?strlen(a):strlen(b); a[k+1]=0; for(i=strlen(a)-1,j=strlen(b)-1;i>=0||j>=0;i--,j--,k--) { if(i>=0) sum+=a[i]-‘0‘; if(j>=0) sum+=b[j]-‘0‘; a[k]=sum%10+‘0‘; sum/=10; } if(sum) a[0]=sum+‘0‘; else strcpy(a,&a[1]); printf("%s\n",a); } int check(char *a) { int x=strlen(a); if(x==0) return 0; for(int i=0;i<x;i++) if(a[i]!=‘0‘) return 1; return 0; } int flag[100]; int main() { int x,y,z,i,t; int T; scanf("%d",&T); while(T--) { memset(flag,0,sizeof(flag)); scanf("%s",a); x=strlen(a); for(i=0;i<x;i++) flag[a[i]-‘0‘]++; int ji=0; int lu=0; for(i=1;i<=9;i++) if(flag[i]) { c[lu++]=‘0‘+i; flag[i]--; break; } for(i=9;i>=0;i--) { while(flag[i]!=0) { b[ji++]=i+‘0‘; flag[i]--; } } b[ji]=‘\0‘; c[lu]=‘\0‘; if(check(b)&&check(c)) add(b,c); else printf("Uncertain\n"); } return 0; }
标签:
原文地址:http://www.cnblogs.com/jhz033/p/5679636.html