Cod sursa(job #189601)

Utilizator netedu_andreiFII Andrei Netedu netedu_andrei Data 16 mai 2008 08:08:55
Problema Multimi2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.66 kb
var f,g:text;   
    n,i,s: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);   
     s:=n div 2;   
     writeln(g,s);   
     for i:=1 to n do  
     if (i mod 4=0) or (i mod 4=1) then write(g,i,' ');
     writeln(g);
     writeln(g,s);
     for i:=1 to n do
     if (i mod 4=3) or (i mod 4=2) then write(g,i,' ');
     writeln(g);   
     end  
  
else if n mod 4=1 then  
     begin  
     writeln(g,1);   
     s:=(n-1) div 2;   
     writeln(g,s+1);   
     write(g,1,' ');   
     for i:=2 to 1+s div 2 do write(g,i,' ');   
     for i:=n downto 1+n-s div 2 do write (g,i,' ');   
     writeln(g);   
     writeln(g,s);   
     for i:=2+s div 2 to n-s div 2 do  
     write(g,i,' ');   
     writeln(g);   
     end  
  
else if n mod 4=2 then  
     begin  
     writeln(g,'1');   
     s:=n div 2;   
     writeln(g,s);   
     write(g,1,' ');   
     for i:=n downto n+1-((s-1) div 2) do write(g,i,' ');   
     for i:=3 to 2+(s-1) div 2 do write(g,i,' ');   
     writeln(g);   
     writeln(g,s);   
     write(g,2,' ');   
     for i:=3+(s-1) div 2 to n-(s-1) div 2 do write(g,i,' ');   
     writeln(g);   
     end  
else if n mod 4=3 then  
     begin  
     writeln(g,0);   
     s:=(n-3) div 2;   
     writeln(g,s+1);   
     for i:=1 to n do  
     if (i mod 4=0) or (i mod 4=3) then write(g,i,' ');   
     writeln(g);   
     writeln(g,s+2);   
     for i:=1 to n do  
     if (i mod 4=1) or (i mod 4=2) then write(g,i,' ');   
     writeln(g);   
     end;   
close(f);   
close(g);   
end.