A nào làm bài này chỉnh sửa giùm e cái code
const fi='TABLE.inp';
fo='TABLE.out';
maxn=1000;
maxt=1000000000000000;
var f,g:text;
n,k:integer;
i,j,c,dem,dem1,t:int64;
z:Longint;
S2,S3,S4:string;
S:ansistring;
Function sokt(x:int64):byte;
begin
sokt:=0;
While x>0 do
begin
sokt:=sokt+1;
x:=x div 10;
end;
end;
Function luythua(x:byte):int64;
begin
If x=1 then exit(10);
luythua:=luythua(x-1)*10;
end;
Function doi(x:int64):string;
begin
S4:='';
While x<>0 do
begin
str(x mod 10,S3);
S4:=S4+S3;
x:=x div 10;
end;
doi:=S4;
end;
Procedure Xuli;
var z:Longint;
begin
i:=1;
S:='';
dem:=0;j:=9;
While dem<t do
begin
dem:=dem+i*j;
inc(i);
If (j*10*i+dem)<t then
j:=10*j
else break;
end;
If (t-dem) mod i=0 then
c:=luythua(i-1)+((t-dem) div i)-1
else c:=luythua(i-1)+((t-dem) div i);
k:=0;
While k<(n+(t-dem) mod i) do
begin
S:=S+doi(c);
inc(k,sokt(c));
dec(c);
end;
If k=n then
for z:=n downto 1 do
Write(g,S[z])
else
If (t-dem) mod i=0 then begin
for z:=n downto 1 do
Write(g,S[z]);
end
else
begin
for z:=n+i-((t-dem) mod i) downto i-((t-dem) mod i)+1 do
Write(g,S[z]);
end;
end;
Begin
Assign(g,fo);
Rewrite(g);
Assign(f,fi);
Reset(f);
Readln(f,n,t);
If (n>=t) then begin
for z:=1 to t do Write(g,z);
close(g);
exit;
end
else
If (t<=9) then begin
for z:=t-n+1 to t do Write(g,z);
close(g);
exit;
end
else
Xuli;
close(f);
close(g);
end.
Chỉ được 77.14/100 ---------------- Mong được sự giúp đỡ !