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. l++;
  43. if(a[i]>b[i])
  44. {
  45. flag=1;
  46.  
  47. break;
  48. }
  49. else if(a[i]<b[i])
  50. {
  51.  
  52. // cout<<"yes"<<a[i]<<" "<<b[i]<<endl;
  53. //cout<<"yes"<<endl;
  54. break;
  55. }
  56. }
  57. cout<<"total loop runs"<<l<<endl;
  58. if(flag==1)
  59. cout<<a<<endl;
  60. else
  61. {
  62. for(;j>=0;j--)
  63. {
  64. if(a[j]=='9')
  65. a[j]='0';
  66. else
  67. {
  68. a[j]++;
  69. flag=1;
  70. break;
  71. }
  72. }
  73. if(flag==0)
  74. {
  75. for(i=length;i>0;i--)
  76. {
  77. a[i]=a[i-1];
  78. }
  79. a[0]='1';
  80. }
  81. count=0;
  82. for(i=0;a[i]!='\0';i++)
  83. count++;
  84. a[count]='\0';
  85. length = count;
  86. i=0;
  87. j=length-1;
  88. while(i<j)
  89. {
  90. if(a[i]!=a[j])
  91. {
  92. a[j]=a[i];
  93. }
  94. i++;
  95. j--;
  96. }
  97. cout<<a<<endl;
  98. }
  99. }
  100. return 0;
  101. }
Success #stdin #stdout 0s 5172KB
stdin
2
99
99999
stdout
total loop runs1000011
101
total loop runs1000011
100001