Cod sursa(job #301276)

Utilizator frozen62iceBLue FirE frozen62ice Data 8 aprilie 2009 08:30:14
Problema Multimi2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.37 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=0 then begin
 writeln(g,'0');
 writeln(g,n div 2);
 for i:=1 to n do
  if (i mod 4=3) or (i mod 4=2) then write(g,i,' ');
 writeln(g);
 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);
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 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=3)or(i mod 4=2) then write(g,i,' ');
 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.