fork download
  1. #include<iostream>
  2. #include<string.h>
  3. using namespace std;
  4. int main()
  5. {
  6. int t;
  7. cin>>t;
  8. while(t--)
  9. {
  10. char b[1000010],a[1000010];
  11. cin>>b;
  12. // cout<<" PP"<<sizeof(b)<<endl;
  13. strncpy(a,b,sizeof(b));
  14. int i,j,length,count=0;
  15. for(i=0;b[i]!='\0';i++)
  16. {
  17. count++;
  18. }
  19. length = count;
  20. if(length==1 && a[0]!='9')
  21. {
  22. a[0]++;
  23. cout<<a<<endl;
  24. continue;
  25. }
  26. i=0;
  27. j=length-1;
  28.  
  29. while(i<j)
  30. {
  31. if(a[i]!=a[j])
  32. {
  33. a[j]=a[i];
  34. }
  35. i++;
  36. j--;
  37. }
  38. int flag = 0;
  39. int l=0;
  40. for(i=0;;i++)
  41. {
  42. //cout<<"yes"<<a[i]<<" "<<b[i]<<endl;
  43. l++;
  44. if(a[i]>b[i])
  45. {
  46. flag=1;
  47. break;
  48. }
  49. else if(a[i]<b[i])
  50. break;
  51. }
  52. cout<<"total loop runs"<<l<<endl;
  53. if(flag==1)
  54. cout<<a<<endl;
  55. else
  56. {
  57. for(;j>=0;j--)
  58. {
  59. if(a[j]=='9')
  60. a[j]='0';
  61. else
  62. {
  63. a[j]++;
  64. flag=1;
  65. break;
  66. }
  67. }
  68. if(flag==0)
  69. {
  70. for(i=length;i>0;i--)
  71. {
  72. a[i]=a[i-1];
  73. }
  74. a[0]='1';
  75. }
  76. count=0;
  77. for(i=0;a[i]!='\0';i++)
  78. count++;
  79. a[count]='\0';
  80. length = count;
  81. i=0;
  82. j=length-1;
  83. while(i<j)
  84. {
  85. if(a[i]!=a[j])
  86. {
  87. a[j]=a[i];
  88. }
  89. i++;
  90. j--;
  91. }
  92. cout<<a<<endl;
  93. }
  94. }
  95. return 0;
  96. }
Success #stdin #stdout 0s 4560KB
stdin
2
99
99999
stdout
total loop runs997959
99
total loop runs997959
99999