Можно ли перед каждым из чисел от 1 до N расставить знаки «+» или «–» так, чтобы сумма получившихся чисел была равна 0?

Легенда гласит, что Карл Фридрих Гаусс, учась в школе, смог быстро посчитать сумму целых чисел от 1 до 100, заметив, что 1 + 100 = 2 + 99 = … = 50 + 51. Теперь решите

задачу посложнее: можно ли перед каждым из чисел от 1 до N расставить знаки «+» или «–» так, чтобы сумма получившихся чисел была равна 0? Например, для N = 3 сумма –1 –2 +3

будет равна 0, а для N = 2 этого сделать нельзя. Программа получает на вход целое неотрицательное число N, не превосходящее 10в(5)степени. Программа должна вывести последовательность из N символов «+» или «–», соответствующих знакам, которые нужно расставить перед числами от 1 до N так, чтобы сумма получившихся чисел была равна 0. Если задача имеет несколько решений, нужно вывести один (лобой) ответ. Если задача не имеет решения для данного N, нужно вывести одно слово «IMPOSSIBLE».

Ввод:

3

2

Вывод:

--+

IMPOSSIBLE

Примечание:

Правильным ответом будет также «++-»

И так вывел закономерность, что все импосибл будет только в числах сумма чисел которых не кратна

т.е 1+2+3+4=10 подходит

1+2+3=6 подходит

1+2=3 нет

так первый числа которые подходят это 3,4,7 сделал проверку но как расставить знаки не понимаю.

Сидел искал очень долго закономерности но в пустую.

+1+2-3=0

+1-2-3+4=0

+1+2-3-4-5+6+7=0

Пока только вот так, думаю как вывести знаки...

PascalВыделить код

1
2
3
4
5
6
7

var n,k: Uint64;
begin
read(n);
for var i:=1 to n do
k:=k+i;
if odd(k) then write('IMPOSSIBLE');
end.

Уже все задачи решил, кроме этой.