Вот тебе в паскале
program ryad_chisel;
var N, t:integer;
begin
read(N);
t:=(N*(N+1))div 2;
if t mod 2 =1 then writeln('IMPOSSIBLE')
else begin
if N mod 2 =0 then begin
t:=N div 4;
repeat
write('+');
t:=t-1;
until t=0;
t:=N div 2;
repeat
write('-');
t:=t-1;
until t=0;
t:=N div 4;
repeat
write('+');
t:=t-1;
until t=0;
end
else begin
t:=((N+1) div 4)-1;
repeat
write('+');
t:=t-1;
until t=0;
t:=((N-1) div 2)+1;
repeat
write('-');
t:=t-1;
until t=0;
t:=(N+1) div 4;
repeat
write('+');
t:=t-1;
until t=0;
end
end
end.
Примерно так. На псевдоязыке, который легко переводится в тот, который знаком
//
Сумм=0;
Конец=0;
Ввод(Ч);
Пока (Ч#Конец) Цикл
Если Проверить(Ч)=1 Тогда
Сумм=Сумм+Ч;
КонецЕсли;
Ввод(Ч);
КонецЦикла;
Печать(Сумм);
//
//
Функция Проверить(П)
Если Остаток(П,10)=4 Тогда
Если Остаток(П,6)=0 Тогда
Возврат(1);
КонецЕсли;
КонецЕсли;
Возврат(0);
КонецФункции
//
Этот текст не использует массивы, поэтому количество вводимых чисел неограничено. Их величина определяется описанием переменной(если в языке оно явно требуется, для приведенных данных достаточно описать как ЦЕЛОЕ(INTEGER)). Сумм описать побольше(если требуется).
Если в языке нет функции Остаток(обычно MOD), напиши свою, это очень просто.
Повторюсь, в Паскаль, Бейсик, 1С текст переводится очень легко, в С(Java, PHP и пр.) чуть сложнее, там немного другой синтаксис, но это преодолимые проблемы.