Cod sursa(job #132665)

Utilizator TudorutzuMusoiu Tudor Tudorutzu Data 6 februarie 2008 12:46:18
Problema Multimi2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.88 kb
var f,g:text;
    n,i: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 mod 4=0)or(i mod 4=1) then write(g,i,' ');
          writeln(g);
          writeln(g,n div 2);
          for i:=1 to n do
               if (i mod 4=2)or(I MOD 4=3) then write(g,i,' ');
          writeln(g);
          close(g);
          halt;
     end;
     if n mod 4 = 1 then
     begin
          writeln(g,'1');
          writeln(g,n div 2);
          for i:=2 to n do
               if (i mod 4 =1)or(i mod 4=2) then write(g,i,' ');
          writeln(g);
          writeln(g,n div 2+1);
          write(g,'1 ');
          for i:=2 to n do
               if (i mod 4 =0)or(i mod 4 =3) then write(g,i,' ');
          writeln(g);
          close(g);
          halt;
     end;
     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 mod 4=2)or(i mod 4=3) then write(g,i,' ');
          writeln(g);
          writeln(g,n div 2);
          write(g,'2 ');
          for i:=3 to n do
               if (i mod 4 =0)or(i mod 4 =1) then write(g,i,' ');
          writeln(g);
          close(g);
          halt;
     end;
     if n mod 4 =3 then
     begin
          writeln(g,'0');
          writeln(g,n div 2);
          write(g,'3 ');
          for i:=4 to n do
               if (i mod 4 =0)or(i mod 4=3) then write(g,i,' ');
          writeln(g);
          writeln(g,n div 2+1);
          write(g,'1 2 ');
          for i:=4 to n do
               if (i mod 4 =1)or(i mod 4 =2) then write(g,i,' ');
          writeln(g);
          close(g);
          halt;
     end;
end.