Cod sursa(job #491735)

Utilizator Tanase_AdrianTanase Adrian Tanase_Adrian Data 12 octombrie 2010 10:40:06
Problema Multimi2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.47 kb
program multimi2;
var n,i:longint;
o,g:text;
begin
assign(o,'multimi2.in');
reset(o);
ASSIGN(G,'multimi2.out');
rewrite(g);
readln(o,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 =1) or (i mod 4=0) 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,' ');
    end;

 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 mod 4 =2) or (i mod 4=1) then
       write(g,i,' ');
       writeln(g);
       writeln(g,n div 2);

   for i := 2 to n do
    if (i mod 4 =3) or (i mod 4 =0) then
    write(g,i,' ');
    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 =1) or (i mod 4=0) then
       write(g,i,' ');
       writeln(g);
       writeln(g,n div 2);
   write(g,'2 ');
   for i := 3 to n do
    if (i mod 4 =2) or (i mod 4 =3) then
    write(g,i,' ');
    end;

    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 mod 4 =3) or (i mod 4=0) then
       write(g,i,' ');
       writeln(g);
       writeln(g,n div 2);
       write(g,'3 ');
   for i := 4 to n do
    if (i mod 4 =2) or (i mod 4 =1) then
    write(g,i,' ');
    end;

    close(g);
    end.