Cod sursa(job #51303)

Utilizator ProtomanAndrei Purice Protoman Data 10 aprilie 2007 22:04:07
Problema Farfurii Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.45 kb
var f1,f2:text; n,m,p,q,k,i:int64;
begin
        assign(f1,'farfurii.in');
        reset(f1);
        assign(f2,'farfurii.out');
        rewrite(f2);
        read(f1,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(f2,i+1,' ');
                        inc(i);
                end;
                i:=n+1;
                while i>n-m+1 do begin
                        dec(i);
                        write(f2,i,' ');
                end;
        end
        else begin
                k:=m-k;
                inc(m);
                i:=1;
                IF NOT K<=0 THEN dec(i);
                while i<n-m do begin
                        inc(i);
                        write(f2,i,' ');
                end;
                write(f2,n-k,' ');
                i:=n+1;
                while i>n-k+1 do begin
                        dec(i);
                        write(f2,i,' ');
                end;
                i:=n-k;
                while i>n-m+1 do begin
                        dec(i);
                        write(f2,i,' ');
                end;
        end;
        close(f1);
        close(f2);
end.