tuki2501

BLOPER.cpp

Sep 14th, 2022
684
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5.     cin.tie(0)->sync_with_stdio(0);
  6.     int n, sum;
  7.     cin >> n >> sum;
  8.     int s = n * (n + 1) / 2;
  9.     int diff = s - sum;
  10.     if (sum > s || sum < 2 - s || diff % 2 || diff == 2) {
  11.         cout << "Impossible" << '\n';
  12.         return 0;
  13.     }
  14.     diff /= 2;
  15.     diff -= 2;
  16.     vector<bool> res(max(n, 4) + 1, false);
  17.     for (int i = n; i >= 5; i--) {
  18.         if (diff >= i) {
  19.             diff -= i;
  20.             res[i] = true;
  21.         }
  22.     }
  23.     switch (diff) {
  24.         case 0:
  25.             res[2] = true;
  26.             break;
  27.         case 1:
  28.             res[3] = true;
  29.             break;
  30.         case 2:
  31.             res[4] = true;
  32.             break;
  33.         case 3:
  34.             res[2] = true;
  35.             res[3] = true;
  36.             break;
  37.         case 4:
  38.             res[2] = true;
  39.             res[4] = true;
  40.             break;
  41.         case 5:
  42.             res[3] = true;
  43.             res[4] = true;
  44.             break;
  45.         case 6:
  46.             cout << "Impossible" << '\n';
  47.             return 0;
  48.         case 7:
  49.             res[2] = true;
  50.             res[3] = true;
  51.             res[4] = true;
  52.     }
  53.     cout << '1';
  54.     for (int i = 2; i <= n; i++) {
  55.         if (res[i]) cout << '-';
  56.         else cout << '+';
  57.         cout << i;
  58.     }
  59.     cout << '\n';
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment