Cod sursa(job #113012)

Utilizator ghitza_2000Stefan Gheorghe ghitza_2000 Data 8 decembrie 2007 13:42:11
Problema Multimi2 Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.27 kb
var dif:integer;
    i,n,nr1:longint;
    f,g:text;
    a:array[1..60000] of byte;
begin
assign(f,'multimi2.in'); reset(f);
assign(g,'multimi2.out'); rewrite(g);
readln(f,n);
 if n<60000 then begin
 i:=n;  dif:=0;
  while i-4>=0 do  begin
  a[i]:=1;
  a[i-1]:=2;
  a[i-2]:=2;
  a[i-3]:=1;
  i:=i-4;
  end;
  nr1:=(n div 4)*2;
  case i of
  0:dif:=0;
  1:begin
   a[1]:=1; dif:=1; nr1:=nr1+1; end;
  2:begin
   a[1]:=1; a[2]:=2; dif:=1; nr1:=nr1+1; end;
  3:begin
   a[1]:=1; a[2]:=1; a[3]:=2; dif:=0; nr1:=nr1+2;
   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);
 while i-4>=0 do begin
       write(g,i,' ',i-3,' ');
       i:=i-4;
 end;
 case i of
 1,2:write(g,i,' ');
 3:write(g,i,' ',2);
 end;
 writeln(g);
 writeln(g,n-nr1);
 i:=n;
 while i-4>=0 do begin
    write(g,i-1,' ',i-2,' ');
   i:=i-4;
 end;
case i of
2:write(g,2,' ');
3:write(g,3,' ');
end;
 close(f); close(g);
end;
end.