Cod sursa(job #112988)

Utilizator eine.hexeNitescu Andreea eine.hexe Data 8 decembrie 2007 13:03:20
Problema Multimi2 Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.42 kb
var a:array[1..64300]of byte;
    f,g:text;
    n,i:longint;
    nr1,dif,j:integer;
begin
  assign(f,'multimi2.in');
  reset(f);
  assign(g,'multimi2.out');
  rewrite(g);
  Readln(f,n);
  if n<64300 then
  begin
  for i:=1 to n do
      Readln(f,a[i]);
  i:=n;
  While i-4>=0 do begin
                   a[i]:=1;
                   a[i-1]:=2;
                   a[i-2]:=1;
                   a[i-3]:=2;
                   i:=i-4;
                 end;
  nr1:=n div 4 * 2;
  case i of
       0:dif:=0;
       1:begin
           a[1]:=1;
           dif:=1;
           inc(nr1);
         end;
       2:begin
           a[1]:=1;
           a[2]:=2;
           dif:=1;
           inc(nr1);
         end;
       3:begin
           a[1]:=1;
           a[2]:=2;
           a[3]:=2;
           dif:=0;
         end;
       end;
  Writeln(g,dif);
  Writeln(g,nr1);
  For i:=1 to n do if a[i]=1 then write (g,i,' ');
  Writeln(g);
  Writeln(g,n-nr1);
  for i:=1 to n do if a[i]=2 then write(g,i,' ');
  end
  else
  begin
    case n mod 4 of
         0:begin dif:=0;nr1:=n div 4 * 2; end;
         1,2:begin dif:=1;nr1:=n div 4 * 2+1; end;
         3:begin dif:=0;nr1:=n div 4*2+2;end;
    end;
    writeln(g,dif);
    writeln(g,nr1);
    for i:=1 to nr1 do write(g,' ');
    writeln(g);
    writeln(g);
    writeln(g,n-nr1);
    for i:=nr1+1 to n do write(g,i,' ');
  end;
  close(f);
  close(g);
end.