Участник:Nik7/Operators

Материал из DISCOPAL
Перейти к: навигация, поиск

«Operators»

// C++ 14
#include <iostream>
#include <stack>
 
int main() {
  int N, S;
  std::cin >> N >> S;
  auto target = 2 - N * (N + 1) / 2;
  auto stack = std::stack<int>();
 
  for (auto v = N; v >= 2; --v){
    if (target + 2 * v <= S) {
      stack.push(v);
      target += 2 * v;
    } else {
      stack.push(-v);
    }
  }
 
  if (target == S) {
    std::cout << 1;
    while (not stack.empty()) {
      std::cout << std::showpos << stack.top();
      stack.pop();
    }
  } else {
    std::cout << "Impossible";
  }
  return 0;
}