fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. string str,str2,original;
  4. int temp,n,carry,mid;
  5.  
  6. void calculate(){
  7. while(str <= original && mid > 0){
  8. if(carry){
  9. temp = (str[mid] - '0') + carry;
  10. }
  11. else{
  12. temp = (str[mid] - '0') + 1 + carry;
  13. }
  14.  
  15. if(temp > 9){
  16. carry = 1;
  17. str[mid] = '0';
  18. str[n-mid-1] = '0';
  19. }
  20. else{
  21. carry =0;
  22. str[mid] = temp + '0';
  23. str[n-mid-1] = temp + '0';
  24. }
  25. --mid;
  26. }
  27. }
  28. bool all_nine(string str){
  29. for(int i=0; i<str.length(); ++i){
  30. if(str[i] != '9'){
  31. return false;
  32. }
  33. }
  34. return true;
  35. }
  36. int main()
  37. {
  38. int t;
  39. cin >> t;
  40. while(t--){
  41. cin >> str;
  42. while(str[0] == '0'){
  43. str.erase(0,1);
  44. }
  45. str2 = str;
  46. original = str;
  47. n = str.length();
  48. mid = str.length()/2;
  49. while(mid < n){
  50. str2[mid] = str2[n-mid-1];
  51. ++mid;
  52. }
  53. mid = str.length()/2;
  54. str = str2;
  55. if( all_nine(str)){
  56. string ch = "1";
  57. string ans;
  58. for(int i=0; i<str.length()-1; ++i){
  59. ans += '0';
  60. }
  61. ans += '1';
  62. ans.insert(0,ch);
  63. cout << ans << "\n";;
  64. }
  65. else{
  66. carry=0;
  67. calculate();
  68. cout << str << "\n";
  69. }
  70. }
  71.  
  72. return 0;
  73. }
Success #stdin #stdout 0s 4348KB
stdin
1
99
stdout
101