Guest User

Untitled

a guest
Nov 13th, 2014
184
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cmath>
  3. #include <algorithm>
  4. #include <string>
  5. #include <cstdio>
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.     //freopen("nextvector.in","r",stdin);
  12.     //freopen("nextvector.out","w",stdout);
  13.     long long i, des, kol;
  14.     string n, sled, pred;
  15.     cin >> n;
  16.     kol = n.size();
  17.     for (i = 0; i <n.size(); i++)
  18.     {
  19.         sled[i] = n[i];
  20.         pred[i] = n[i];
  21.     }
  22.     for (i = sled.size()-1; i >= 0; i --)
  23.     {
  24.         if (sled[i] == '0')
  25.         {
  26.             sled[i] = '1';
  27.             for (long long j = sled.size()-1; j > i; j --)
  28.             {
  29.                sled[j] = '0';
  30.                des = 1;
  31.                break;
  32.             }
  33.         }
  34.         if (des == 1)
  35.         {
  36.             break;
  37.         }
  38.     }
  39.     des = 0;
  40.     for (i = pred.size()-1; i >= 0; i --)
  41.     {
  42.         if (pred[i] == '1')
  43.         {
  44.             pred[i] = '0';
  45.             for (long long j = sled.size()-1; j > i; j --)
  46.             {
  47.                pred[j] = '1';
  48.                des = 1;
  49.                break;
  50.             }
  51.         }
  52.         if (des == 1)
  53.         {
  54.             break;
  55.         }
  56.     }
  57.     if (n[0] == '0')
  58.     {
  59.         cout << '-' << endl << '1';
  60.     }
  61.     else
  62.     {
  63.         if (sled.size() > kol)
  64.         {
  65.             cout << pred << endl << '-';
  66.         }
  67.         else
  68.         {
  69.             if (pred.size() < kol)
  70.             {
  71.                 cout << '-' << endl << sled;
  72.             }
  73.             else
  74.             {
  75.                 cout << pred << endl << sled;
  76.             }
  77.         }
  78.     }
  79. return 0;
  80. }
RAW Paste Data