Đề 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)]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.
Speak Your Mind