Cod sursa(job #210708)

Utilizator FllorynMitu Florin Danut Flloryn Data 28 septembrie 2008 18:44:45
Problema Multimi2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.11 kb
program pascal;
var f,g:text;
   n,sum:int64; i,k,p:longint;
   x,v:array[1..1000000] of longint;


   procedure test1;
   begin
     k:=0;
     sum:=0;
     i:=n;
     while sum+i<=(n*(n+1) div 4) do
       begin
        sum:=sum+i;
        k:=k+1;
        v[k]:=i;
        i:=i-1;
       end;

     if sum<(n*(n+1) div 4) then
           begin
             k:=k+1;
             v[k]:=(n*(n+1) div 4)-sum;
           end;

      writeln(g,k);
      for i:=k downto 1 do
               begin
                 write(g,v[i],' ');
                 x[v[i]]:=1;
               end;
     writeln(g);
     writeln(g,n-k);
     p:=n-k+1;
     for i:=1 to n do
      begin
      if x[i]=0 then write(g,i,' ');
      p:=p-1;
      if p=0 then break;
      end;
   end;

begin
 assign(f,'multimi2.in'); reset(f);
 assign(g,'multimi2.out'); rewrite(g);
 read(f,n);
 if (n*(n+1)div 2) mod 2=1 then
          begin
            writeln(g,1);
            test1;
           end
         else
          begin
           writeln(g,0);
           test1;
          end;

 close(f);
 close(g);
end.