Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.02 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <iomanip>
  4. #include <string>
  5. #include <vector>
  6. #include <algorithm>
  7. #include <set>
  8. #include <map>
  9.  
  10. using namespace std;
  11.  
  12. int main() {
  13.     std::cin.tie(NULL);
  14.     std::cout.tie(NULL);
  15.    
  16.     long long int n;
  17.     std::cin >> n;
  18.     n++;
  19.     std::string s = std::to_string(n);
  20.     for (int i = 1; i < s.size(); ++i) {
  21.         if (s[i] != s[i - 1])
  22.             continue;
  23.         if (s[i] != '9') {
  24.             s[i]++;
  25.             for (int j = i + 1; j < s.size(); j += 2) {
  26.                 s[j] = '0';
  27.                 if (j + 1 < s.size())
  28.                     s[j + 1] = '1';
  29.             }
  30.         }
  31.         else {
  32.             if (i == 1) {
  33.                 s[1] = '1';
  34.                 s[0] = '0';
  35.                 s = "1" + s;
  36.                 for (int j = 3; j < s.size(); j += 2) {
  37.                     s[j] = '0';
  38.                     if (j + 1 < s.size())
  39.                         s[j + 1] = '1';
  40.                 }
  41.             }
  42.             else {
  43.                 int j = i;
  44.                 while (true) {
  45.                     s[j - 2]++;
  46.                     s[j - 1] = '0';
  47.                     s[j] = '1';
  48.                     if (j - 3 >= 0 && s[j - 2] == s[j - 3]) {
  49.                         if (s[j - 2] != '9') {
  50.                             s[j - 2]++;
  51.                             break;
  52.                         }
  53.                         if (j == 3) {
  54.                             s[0] = '0';
  55.                             s[1] = '1';
  56.                             s = "1" + s;
  57.                             ++i;
  58.                             break;
  59.                         }
  60.                         j -= 2;
  61.                     }
  62.                     else
  63.                         break;
  64.                 }
  65.                 for (j = i + 1; j < s.size(); j += 2) {
  66.                     s[j] = '0';
  67.                     if (j + 1 < s.size())
  68.                         s[j + 1] = '1';
  69.                 }
  70.             }
  71.         }
  72.         break;
  73.     }
  74.     std::cout << s;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement