Cod sursa(job #168967)

Utilizator loriKis Levente Lorand lori Data 31 martie 2008 21:57:16
Problema Multimi2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.51 kb
var n,i,j,k,n1,n2,d:longint;
    v1,v2:array [1..1000000] of longint;
begin
 assign(input,'multimi2.in'); reset(input);
 assign(output,'multimi2.out'); rewrite(output);
  readln(n);
  case n mod 4 of
   0:begin
      d:=0; n1:=n div 2; n2:=n div 2;
      for i:=1 to n do
       if (i mod 4=0) or ((i-1) mod 4=0) then begin
        inc(j); v1[j]:=i;
       end
                                       else begin
        inc(k); v2[k]:=i;
       end;
     end;
   1:begin
      d:=1; n1:=n div 2+1; n2:=n div 2; v1[1]:=1; j:=1;
      for i:=2 to n do
       if ((i-2) mod 4=0) or ((i-1) mod 4=0) then begin
        inc(j); v1[j]:=i;
       end
                                       else begin
        inc(k); v2[k]:=i;
       end;
     end;
   2:begin
      d:=1; n1:=n div 2; n2:=n div 2; v1[1]:=1; v2[1]:=2; j:=1; k:=1;
      for i:=3 to n do
       if ((i-2) mod 4=0) or ((i-3) mod 4=0) then begin
        inc(j); v1[j]:=i;
       end
                                       else begin
        inc(k); v2[k]:=i;
       end;
     end;
   3:begin
      d:=0; n1:=n div 2+1; n2:=n div 2; v1[1]:=1; v1[2]:=2; v2[1]:=3; j:=2; k:=1;
      for i:=4 to n do
       if ((i-3) mod 4=0) or (i mod 4=0) then begin
        inc(j); v1[j]:=i;
       end
                                       else begin
        inc(k); v2[k]:=i;
       end;
     end;
  end;
  writeln(d);
  writeln(n1);
  for i:=1 to j do write(v1[i],' ');
  writeln;
  writeln(n2);
  for i:=1 to k do write(v2[i],' ');
  writeln;
end.