Участник:KislinskiyVadim/BLOPER

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

Решение на питоне, проходит тесты https://www.spoj.com/problems/BLOPER/

N, S = map(int, input().split())
 
target = 2 - N * (N + 1) / 2
stack = []
v = N
while (v >= 2):
    if target + 2 * v <= S:
        stack.append(v)
        target += 2 * v
    else:
        stack.append(-v)
 
    v -= 1
 
if target == S:
    print (1, end='')
    while stack:
        print (f'{stack.pop():+}', end='')
else:
    print ("Impossible")