fork(5) download
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. int main()
  5. {
  6. char a[1000002];
  7. int test,i,flag,check,l,m,k;
  8. scanf("%d\n",&test);
  9. while(test--)
  10. {
  11. flag=1;
  12. gets(a);
  13. l=strlen(a);
  14. // baseof(length / 2) in integer.
  15. k=l>>1;
  16. //printf("k=%d\n",k);
  17. check=0;
  18. for(i=0;i<l;i++)
  19. {
  20. if(a[i]!='9')
  21. {
  22. flag=0;
  23. //printf("a\n");
  24. break;
  25. }
  26. }
  27. //handaling case when 9, 99, 999 is given.(only 9s)
  28. if(flag==1)
  29. {
  30. a[0]='1';
  31. for(i=1;i<l;i++)
  32. a[i]='0';
  33. a[l]='1';
  34. a[l+1]='\0';
  35. check=1; //to check palindrom or not number
  36. }
  37.  
  38. flag=0;
  39. if(check!=1)
  40. {
  41. for(i=0;i<k;i++)
  42. {
  43. if(a[i]<a[l-1-i]){
  44. flag=-1;
  45. //printf("flag=-1\n");
  46. }
  47. else if(a[i]>a[l-1-i]){
  48. //printf("flag=1\n");
  49. flag=1;}
  50. a[l-1-i]=a[i];
  51. }
  52.  
  53. if(!(l&1))
  54. m=k-1;
  55. else m=k;
  56. if(flag==0||flag==-1)
  57. {
  58. i=0;
  59. while(a[m-i]=='9')
  60. {
  61. a[m-i]='0';
  62. a[l-1-m+i]='0';
  63. i++;
  64. }
  65.  
  66. a[m-i]++;
  67. a[l-1-m+i]=a[m-i];
  68. }
  69. }
  70. printf("%s\n",a);
  71. }
  72. return 0;
  73. }
Success #stdin #stdout 0s 3148KB
stdin
1 1234
stdout
1331