Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int main() {
- cin.tie(0)->sync_with_stdio(0);
- int n, sum;
- cin >> n >> sum;
- int s = n * (n + 1) / 2;
- int diff = s - sum;
- if (sum > s || sum < 2 - s || diff % 2 || diff == 2) {
- cout << "Impossible" << '\n';
- return 0;
- }
- diff /= 2;
- diff -= 2;
- vector<bool> res(max(n, 4) + 1, false);
- for (int i = n; i >= 5; i--) {
- if (diff >= i) {
- diff -= i;
- res[i] = true;
- }
- }
- switch (diff) {
- case 0:
- res[2] = true;
- break;
- case 1:
- res[3] = true;
- break;
- case 2:
- res[4] = true;
- break;
- case 3:
- res[2] = true;
- res[3] = true;
- break;
- case 4:
- res[2] = true;
- res[4] = true;
- break;
- case 5:
- res[3] = true;
- res[4] = true;
- break;
- case 6:
- cout << "Impossible" << '\n';
- return 0;
- case 7:
- res[2] = true;
- res[3] = true;
- res[4] = true;
- }
- cout << '1';
- for (int i = 2; i <= n; i++) {
- if (res[i]) cout << '-';
- else cout << '+';
- cout << i;
- }
- cout << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment