Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.72 KB | None | 0 0
  1. #include "bits/stdc++.h"
  2. using namespace std;
  3. typedef long long LL;
  4. #define nl "\n"
  5. #define X first
  6. #define Y second
  7. #define MAX INT_MAX
  8. #define pb(a) push_back(a)
  9. #define gcd(a,b) __gcd(a,b)
  10. #define lcm(a,b) a*(b/gcd(a, b))
  11. #define mp(a,b) make_pair(a,b)
  12. #define check() {printf("OK\n");}
  13. #define SORT(v) sort(v.begin(),v.end())
  14. #define REV(v) reverse(v.begin(),v.end())
  15. #define mem(a,x) memset(a,x,sizeof(a))
  16. #define rep(i, n) for(int i = 0; i < (n); ++i)
  17. #define rep1(i, n) for(int i = 1; i <= (n); ++i)
  18. #define maxv(v) *max_element(v.begin(),v.end())
  19. #define minv(v) *min_element(v.begin(),v.end())
  20. #define each(it,s) for(auto it = s.begin(); it != s.end(); ++it)
  21. #define f() {ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);}
  22. #define UNQ(v) SORT(v),(v).erase(unique((v).begin(),(v).end()),(v).end())
  23. #define MOD 1000000007 // (int)1e9+7
  24. #define S(x) scanf("%d",&x)
  25. #define Sl(x) scanf("%lld",&x)
  26. #define P(x) printf("%d\n",x)
  27. #define Pl(x) printf("%lld\n",x)
  28.  
  29. int main()
  30. {f();
  31. //freopen("input.txt", "r", stdin);
  32. //freopen("output.txt", "w", stdout);
  33.  
  34. int t;
  35. S(t);
  36. while(t--)
  37. {
  38. int len;
  39. string s;
  40. cin>>s;
  41. //cout<<chk<<nl;
  42. if(s.length()==1){
  43. if(s[0]=='9'){
  44. cout<<"11"<<nl;
  45. }
  46. else{
  47. s[0] +=1;
  48. cout<<s[0]<<nl;
  49. }
  50. }
  51. else{
  52. vector<char>v;
  53. for(int i = 0; i<s.length();i++){
  54. if(s[i]=='9'){
  55. v.pb(s[i]);
  56. }
  57. }
  58. UNQ(v);
  59. if(v.size()==1){
  60. s.erase(s.begin());
  61. s = "10"+s;
  62. len = s.length();
  63. //cout<<s<<" s"<<nl;
  64. int mid = len/2;
  65. if(len%2){
  66. for(int i = 0,j=(len-1);i<mid,j>=(mid+1);i++,j--){
  67. s[j] = s[i];
  68. }
  69. }
  70. else{
  71. for(int i = 0,j=(len-1);i<mid,j>=(mid);i++,j--){
  72. s[j] = s[i];
  73. }
  74. //cout<<"chk "<<s<<nl;
  75. }
  76.  
  77. }
  78. else{
  79. s[s.length()-1] += 1;
  80. len = s.length();
  81. //cout<<s<<nl;
  82. string chk = s;
  83. int mid = len/2;
  84. if(len%2){
  85. while(true){
  86. if(s<=chk){
  87. if(s[1]=='9')
  88. {
  89. s[0]+=1;
  90. for(int k = 1; k<s.length();k++)
  91. {
  92. s[k] = '0';
  93. }
  94. }
  95. else{
  96. s[1]+=1;
  97. }
  98. len = s.length();
  99. }
  100. for(int i = 0,j=(len-1);i<mid,j>=(mid+1);i++,j--){
  101. s[j] = s[i];
  102. }
  103. if(s>chk){
  104. break;
  105. }
  106.  
  107. }
  108.  
  109. }
  110. else{
  111. while(true){
  112. if(s<=chk){
  113. if(s[1]=='9')
  114. {
  115. s[0]+=1;
  116. for(int k = 1; k<s.length();k++)
  117. {
  118. s[k] = '0';
  119. }
  120. }
  121. else{
  122. s[1]+=1;
  123. }
  124. len = s.length();
  125. }
  126. for(int i = 0,j=(len-1);i<mid,j>=(mid);i++,j--){
  127. s[j] = s[i];
  128. }
  129. //cout<<"chk "<<s<<nl;
  130. if(s>chk){
  131. break;
  132. }
  133. }
  134.  
  135. }
  136. //chk ="";
  137. }
  138. cout<<s<<nl;
  139. }
  140.  
  141.  
  142. }
  143. return 0;
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement