Chương trình đơn giản

ML

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
NL
23 tháng 12 2019 lúc 10:44

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

Bình luận (0)
 Khách vãng lai đã xóa
NT
4 tháng 2 2020 lúc 16:40

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.

Bình luận (0)
 Khách vãng lai đã xóa
ML
23 tháng 3 2020 lúc 7:00

OK

Bình luận (0)
 Khách vãng lai đã xóa

Các câu hỏi tương tự
ML
Xem chi tiết
LT
Xem chi tiết
DQ
Xem chi tiết
HP
Xem chi tiết
NT
Xem chi tiết
DQ
Xem chi tiết
LH
Xem chi tiết
VN
Xem chi tiết
NT
Xem chi tiết