Cod sursa(job #124519)

Utilizator andreivFMI - vacaroiu andrei andreiv Data 19 ianuarie 2008 15:24:37
Problema Multimi2 Scor 70
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.82 kb
program multimi2;
var n,i:longint;
    G:TEXT;

procedure citire;
var f:text;
begin
assign(f,'multimi2.in');
reset(f);
read(f,n);
close(f);
end;


begin
citire;
assign(g,'multimi2.out');
rewrite(g);
if n mod 2=0 then
begin

if ((n*(n+1)) div 2) mod 2=0 then
begin
write(g,0);writeln(g);
write(g,n div 2);writeln(g);
for i:=1 to (n div 4) do
begin
write(g,i,' ');
write(g,n+1-i, ' ');
end;
writeln(g);write(g,n div 2);writeln(g);
for i:=(n div 4)+1 to (n div 2) do
begin
write(g,i,' ');
write(g,n+1-i,' ');
end;
end  else

if ((n*(n+1)) div 2) mod 2<>0 then
begin
write(g,1);writeln(g);
write(g,n div 2);writeln(G);
for i:=1 to (n div 4) do
begin
write(g,i,' ');
write(g,n+1-i, ' ');
end;
write(g,n div 2);
writeln(g);write(g,n div 2);writeln(g);
for i:=(n div 4)+1 to (n div 2)-1 do
begin
write(g,i,' ');
write(g,n+1-i,' ');
end;
write(g,(n div 2) +1);
end;

end

else
if n mod 2<>0 then
begin

IF ((n*(n+1)) div 2) mod 2 = 0 then
begin
write(g,0);
writeln(g);write(g,(n div 2)+1);writeln(g);
write(g,1,' ');write(g,n-1,' ');
for i:=2 to ((n-3) div 2)+1 do
if i mod 2=0 then
begin
write(g,i,' ');
write(g,n-i,' ');
end;
writeln(g);write(g,n div 2);
writeln(g);write(g,n,' ');
for i:=2 to ((n-3) div 2)+1 do
if i mod 2<>0 then
begin
write(g,i,' ');
write(g,n-i,' ');
end;
end

   else

IF ((n*(n+1)) div 2) mod 2 <> 0 then
begin
write(g,1);
writeln(g);write(g,(n div 2)+1);
writeln(g);write(g,1,' ');write(g,n-1,' ');write(g,n div 2,' ');
for i:= 2 to ((n-3) div 2)-1 do
if i mod 2 =0 then
begin
write(g,i,' ');
write(g,n-i,' ');
end;
writeln(g);write(g,n div 2);
writeln(G);write(g,n, ' ');write(g,(n div 2)+1,' ');
for i:= 2 to ((n-3) div 2)-1 do
if i mod 2 <>0 then
begin
write(g,i,' ');
write(g,n-i,' ');
end;
end;
end;
closE(G);
end.