Cod sursa(job #197220)

Utilizator theratmantheratman theratman Data 2 iulie 2008 21:22:06
Problema Multimi2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.22 kb
var f,g:text;
    a:array[1..1000000] of byte;
    n,i,d:longint;
begin
assign(f,'multimi2.in');reset(f);
assign(g,'multimi2.out');rewrite(g);
read(f,n);
for i:=1 to n do a[i]:=2;
if n mod 2=0 then
 if n mod 4=0 then begin
  d:=0;
  for i:=1 to n div 4 do a[i]:=1;
  for i:=3*n div 4+1 to n do a[i]:=1;
 end
  else begin
   d:=1;
   for i:=1 to n div 4 do a[i]:=1;
   for i:=n div 4*3+n mod 4+1 to n do a[i]:=1;
   a[n div 2]:=1;
  end;
if n mod 2=1 then
 if (n-3) mod 4=0 then begin
  d:=0;
  a[1]:=1;
  a[2]:=1;
  for i:=4 to (n-3) div 4+3 do a[i]:=1;
  for i:=3*(n-3) div 4+4 to n do a[i]:=1;
 end
  else begin
   d:=1;
   a[1]:=1;
   a[2]:=1;
   for i:=4 to (n-3)div 4+3 do a[i]:=1;
   for i:=3*(n-3) div 4+3+(n-3)mod 4 to n do a[i]:=1;
   a[(n-3) div 2+3]:=1;
  end;
writeln(g,d);
if n mod 2=0 then begin
 writeln(g,n div 2);
 for i:=1 to n do
  if a[i]=1 then write(g,i,' ');
 writeln(g);
 writeln(g, n div 2);
 for i:=1 to n do
  if a[i]=2 then write(g,i,' ');
 end
  else begin
   writeln(g,n div 2+1);
   for i:=1 to n do
    if a[i]=1 then write(g,i,' ');
   writeln(g);
   writeln(g,n div 2);
   for i:=1 to n do
    if a[i]=2 then write(g,i,' ');
  end;
close(f);
close(g);
end.