Cod sursa(job #246154)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 20 ianuarie 2009 09:19:14
Problema Multimi2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.35 kb
var f,g:text;
n,i,j:longint;
begin
assign(f,'multimi2.in');
reset(f);
assign(g,'multimi2.out');
rewrite(g);
readln(f,n);
if n mod 4=0 then
         begin
         writeln(g,0);
         writeln(g,n div 2);
         for i:=1 to n do
               if ((i-1) mod 4=1)or ((i-1) mod 4=2) then write(g,i,' ');
         writeln(g);
         writeln(g,n div 2);
         for i:=1 to n do
              if ((i-1) mod 4=0)or ((i-1) mod 4=3) then write(g,i,' ');
         end
        else if n mod 4=1 then
                          begin
                            writeln(g,1);
                            writeln(g,((n div 2)+1));
                            write(g,1,' ');
                            for i:=2 to n do
                             if ((i-2) mod 4=1)or ((i-2) mod 4=2) then write(g,i,' ');
                            writeln(g);
                            writeln(g,n div 2);
                            for i:=2 to n do
                              if ((i-2) mod 4=0)or ((i-2) mod 4=3) then write(g,i,' ');
                           end
           else  if n mod 4=2 then
                              begin
                              writeln(g,1);
                            writeln(g,((n div 2)));
                            write(g,1,' ');
                            for i:=3 to n do
                             if ((i-3) mod 4=1)or ((i-3) mod 4=2) then write(g,i,' ');
                            writeln(g);
                            writeln(g,n div 2);
                            write(g,2,' ');
                              for i:=3 to n do
                              if ((i-3) mod 4=0)or ((i-3) mod 4=3) then write(g,i,' ');
                           end
           else if n mod 4=3 then
                          begin
                              writeln(g,0);
                            writeln(g,((n div 2+1)));
                            write(g,1,' ',2,' ');
                            for i:=4 to n do
                             if ((i-4) mod 4=1)or ((i-4) mod 4=2) then write(g,i,' ');
                            writeln(g);
                            writeln(g,n div 2);
                            write(g,3,' ');
                              for i:=4 to n do
                              if ((i-4) mod 4=0)or ((i-4) mod 4=3) then write(g,i,' ');
                           end;
close(g);
end.