Cod sursa(job #51254)

Utilizator cezar305Mr. Noname cezar305 Data 10 aprilie 2007 17:26:52
Problema Farfurii Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.83 kb
var n,k:qword;
    f,g:text;
    q,m,p,i:qword;
begin
 assign(f,'farfurii.in'); reset(f);
 assign(g,'farfurii.out'); rewrite(g);
 read(f,n,k);
 p:=1;
 while p<n do
  p:=p*2;
 m:=0;
 while p>0 do begin
  q:=(m+p)*(m+p-1);
  if (m+p<=n) and (q<=2*k)then
   m:=m+p;
  p:=p div 2;
 end;
 k:=k-m*(m-1) div 2;
 if k<=0 then begin
  i:=0;
  while i<n-m do begin
   write(g,i+1,' ');
   inc(i);
  end;
  i:=n+1;
  while i>n-m+1 do begin
   dec(i);
   write(g,i,' ');
  end;
  writeln(g);
 end
 else begin
  k:=m-k;
  inc(m);
  i:=0;
  while i<n-m do begin
   inc(i);
   write(g,i,' ');
  end;
  write(g,n-k,' ');
  i:=n+1;
  while i>n-k+1 do begin
   dec(i);
   write(g,i,' ');
  end;
  i:=n-k;
  while i>n-m+1 do begin
   dec(i);
   write(g,i,' ');
  end;
  writeln(g);
 end;
 close(f); close(g);
end.