Advertisement
tuki2501

PALIN.cpp

Dec 1st, 2021
826
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;
  5.  
  6. void solve() {
  7.   string s;
  8.   cin >> s;
  9.   bool flag = 0;
  10.   for (auto &i : s) {
  11.     if (i != '9') {
  12.       flag = 1;
  13.       break;
  14.     }
  15.   }
  16.   if (!flag) {
  17.     string res = "1";
  18.     for (int i = 0; i + 1 < s.size(); i++) {
  19.       res += '0';
  20.     }
  21.     res += '1';
  22.     cout << res << '\n';
  23.     return;
  24.   }
  25.   for (int i = s.size() / 2; i < s.size(); i++) {
  26.     if (s[i] > s[s.size() - i - 1]) break;
  27.     if (s[i] < s[s.size() - i - 1]) {
  28.       string t = s.substr(0, (s.size() + 1) / 2);
  29.       if (s.size() % 2) {
  30.         t.pop_back();
  31.       }
  32.       reverse(t.begin(), t.end());
  33.       string res = s.substr(0, (s.size() + 1) / 2) + t;
  34.       cout << res << '\n';
  35.       return;
  36.     }
  37.   }
  38.   for (int i = (s.size() - 1) / 2; i >= 0; i--) {
  39.     if (s[i] < '9') {
  40.       s[i]++;
  41.       string t = s.substr(0, i + 1);
  42.       string res = t;
  43.       for (int j = i + 1; j < s.size() - i - 1; j++) {
  44.         res += '0';
  45.       }
  46.       if (s.size() % 2 && i == (s.size() - 1) / 2) {
  47.         t.pop_back();
  48.       }
  49.       reverse(t.begin(), t.end());
  50.       res += t;
  51.       cout << res << '\n';
  52.       return;
  53.     }
  54.   }
  55. }
  56.  
  57. signed main() {
  58.   cin.tie(0)->sync_with_stdio(0);
  59.   int T; cin >> T;
  60.   while (T--) solve();
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement