fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define mp make_pair
  4. #define pb push_back
  5. #define F first
  6. #define S second
  7.  
  8.  
  9. using namespace std;
  10.  
  11. int main() {
  12. int t;
  13. cin >> t;
  14. while(t--)
  15. {
  16. string s;
  17. cin >> s;
  18. int n = s.length();
  19. if(n==1)
  20. {
  21. cout << s << endl;
  22. continue;
  23. }
  24. bool oneZero = true;
  25. for(int i=0;i<n;i++)
  26. {
  27. if(s[i]!='0' && s[i]!='1')
  28. {
  29. oneZero = false;
  30. break;
  31. }
  32. }
  33. if(oneZero)
  34. {
  35. //cout << "in oneZero" << endl;
  36. if(s[n-1]=='1')
  37. {
  38. //cout << "hi ";
  39. cout << s << endl;
  40. continue;
  41. }
  42. else
  43. {
  44. for(int i=n-1;i>=0;i--)
  45. {
  46. if(s[i]=='1')
  47. {
  48. s[i]='0';
  49. break;
  50. }
  51. else
  52. {
  53. s[i]='9';
  54. }
  55. }
  56. int k = 0;
  57. while(1)
  58. {
  59. if(s[k]!='0')
  60. {
  61. break;
  62. }
  63. k++;
  64. }
  65. string temp = s.substr(k);
  66. cout << temp << endl;
  67. continue;
  68. }
  69. }
  70. else
  71. {
  72. int k = 0;
  73. while(1)
  74. {
  75. if(s[k]!='1' && s[k]!='0')
  76. {
  77. break;
  78. }
  79. k++;
  80. }
  81. if(k==n-1)
  82. {
  83. //cout << "hi " ;
  84. cout << s << endl;
  85. continue;
  86. }
  87. else
  88. {
  89. bool nine = true;
  90. for(int i=k+1;i<n;i++)
  91. {
  92. if(s[i]!='9')
  93. {
  94. nine = false;
  95. break;
  96. }
  97. }
  98. if(nine)
  99. {
  100. cout << s << endl;
  101. continue;
  102. }
  103. int f = s[k]-'0';
  104. f--;
  105. s[k] = f+'0';
  106. for(int i=k+1;i<n;i++)
  107. {
  108. s[i] = '9';
  109. }
  110. cout << s << endl;
  111. continue;
  112. }
  113. }
  114. }
  115. return 0;
  116. }
Success #stdin #stdout 0.02s 15240KB
stdin
Standard input is empty
stdout