Вот тебе в паскале
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.
#include <iostream>
using namespace std;
int main() {
const char* s = "one two three four five six seven";
const char* w = 0;
int max_size = 0;
int word_size = 0;
for (int i = 0; s[i]; i++) {
if (s[i] != ' ') {
word_size++;;
} else if ((s[i] == ' ') || !s[i + 1]) {
if (word_size > max_size) {
max_size = word_size;
w = s + i - word_size;
}
word_size = 0;
}
}
for (int i = 0; i < max_size; i++) {
std::cout << w[i];
}
std::cout << "\n";
return 0;
}