KDEL – SPOJ

Đề bài: http://vn.spoj.com/problems/KDEL/

Thuật toán: 

  • (đang cập nhập)

Code:

const fi='';
      fo='';
      maxn=700000;
var   i,j:longint;
      f:text;
      n,k,d:longint;
      tam:array[1..maxn] of boolean;
      ngto:array[1..50000] of longint;
      hold,res:ansistring;
procedure nhap;
begin
    assign(f,fi);reset(f);
    readln(f,n,k);
    close(f);
end;
procedure sang;
begin
    tam[1]:=true;
    for i:=2 to trunc(sqrt(maxn)) do
      if tam[i]=false then
        begin
             j:=i*i;
             while j<=maxn do
                   begin
                       tam[j]:=true;
                       j:=j+i;
                   end;
        end;
    d:=0;
    for i:=2 to maxn do
      if tam[i]=false then
         begin
             inc(d);
             ngto[d]:=i;
             if d=n then exit;
         end;
end;
procedure xuly;
var       tmp,tam:ansistring;
          le,leres:int64;
begin
    sang;
 
 
 
 
    for i:=1 to n do
      begin
          str(ngto[i],tmp);
          hold:=hold+tmp;
      end;
 
    le:=length(hold);
    leres:=le-k;
 
    for i:=1 to le do
      begin
          while (k>0) and (length(res)>0) and (res[length(res)]<hold[i]) do
                begin
                    delete(res,length(res),1);
                    dec(k);
                end;
          res:=res+hold[i];
      end;
 
    while length(res)>leres do
        begin
            delete(res,length(res),1);
        end;
 
 
end;
procedure xuat;
begin
    assign(f,fo);rewrite(f);
    writeln(f,res);
    close(f);
end;
begin
    nhap;
    xuly;
    xuat;
end.
Khuyên dùng

 

About Aida Nana

Nghề chính là chém gió, quăng bom và ném lựu đạn.
Nghề phụ là cắt cỏ, chém chuối, cưa cây......

Speak Your Mind

*