Trong một cuộc thi thế vận hội các vận động viên gắn thẻ số báo danh lần lượt từ 1 đến n (nghĩa là có n vận động viên) . Sau khi tổ chức xong kì thi ban tổ chức yêu cầu thí sinh có số báo danh có 2 chữ số trở lên phải cắt đều mỗi chữ số theo chiều rộng và chiều dài là 4x10 . Và thí sinh có số báo danh 1 chữ số phải cắt đều theo chiều rộng và chiều dài là 4x10. Sau khi cắt xong ban tổ chức cho sắp xếp lần lượt các số theo như ban đầu đã cắt và cách đều nhau (VD dãy số 11-13 sẽ được sắp xếp: 1 1 1 2 1 3). Vận động viên tìm ra chữ số thứ k trong dãy số đã cắt trên sẽ được một giải thưởng vinh dự.
Yêu cầu : Hãy giúp các vận động viên tìm ra chữ số thứ k trong dãy đó
Dữ liệu vào : Gồm 1 dòng n,k (0<n,k<=2x106)
Dữ liệu ra : Một dòng duy nhất chữ số thứ k
TVH.INP | TVH.OUT |
13 10 | 0 |
Bài test cho các bạn tham gia tích cực tại môn Tin học .
♛๖ۣۜEɗωαɾɗ ๖ۣۜNεω๖ۣۜGαтε♛ ; Nguyễn Lê Phước Thịnh ; @Luân Trần
const fi='tvh.inp';
fo='tvh.out';
var n,d,dem,sl,s2cs,s3cs,s4cs,s5cs,s6cs,s7cs,k,i,d1:longint;
st,st1,stk:string;
f1,f2:text;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n,k);
str(n,st);
d:=length(st);
case d of
1: write(9);
2: begin
sl:=n-9;
dem:=9+sl*2;
end;
3: begin
s2cs:=(99-10)+1;
s3cs:=n-99;
dem:=9+s2cs*2+s3cs*3;
end;
4: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=n-999;
dem:=9+s2cs*2+s3cs*3+s4cs*4;
end;
5: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=n-9999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5;
end;
6: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=(99999-10000)+1;
s6cs:=n-99999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6;
end;
7: begin
s2cs:=(99-10)+1;
s3cs:=(999-100)+1;
s4cs:=(9999-1000)+1;
s5cs:=(99999-10000)+1;
s6cs:=(999999-1000000)+1;
s7cs:=n-999999;
dem:=9+s2cs*2+s3cs*3+s4cs*4+s5cs*5+s6cs*6+s7cs*7;
end;
end;
if k<=dem then
begin
i:=1;
d1:=0;
repeat
str(i,st1);
d1:=d1+length(st1);
i:=i+1;
until d1>=k;
stk:=st1[length(st1)-(d1-k)];
writeln(f2,stk);
end;
close(f1);
close(f2);
end.