Cod sursa(job #284812)

Utilizator frozen62iceBLue FirE frozen62ice Data 21 martie 2009 23:18:28
Problema Multimi2 Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.34 kb
// Exista 4 cazuri
//  n = 4*k
//  n = 4*k + 1
//  n = 4*k + 2
//  n = 4*k + 3
var f,g:text;
    n,i,x:longint;
begin
assign(f,'multimi2.in');reset(f);
assign(g,'multimi2.out');rewrite(g);
read(f,n);
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=0)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=1)or(i mod 4=2) then write(g,i,' ');
 writeln(g);
end
{ else
if n mod 4=0 then begin
 writeln(g,'0');
 writeln(g,n div 2);
 x:=n div 4;
 for i:=1 to n div 4 do
  write(g,i,' ',x-i+1,' ');
 writeln(g);
 writeln(g,n div 2);
 for i:=x+1 to n do
  write(g,i,' ',n-i+1);
 writeln(g);
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 mod 4=0)or(i mod 4=3) then write(g,i,' ');
 writeln(g);
 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);
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 mod 4=0)or(i mod 4=3) then write(g,i,' ');
 writeln(g);
 writeln(g,n div 2);
 write(g,'3 ');
 for i:=4 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.