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

Minh Lệ

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
Nguyễn Minh Lệ
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
Nguyễn Lê Phước Thịnh
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
Minh Lệ
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ự
Minh Lệ
Xem chi tiết
Lê Thị Bảo Trâm
Xem chi tiết
Đinh Hoàng Nhất Quyên
Xem chi tiết
Hà Phương
Xem chi tiết
Nguyễn Thị Tươi
Xem chi tiết
Đinh Hoàng Nhất Quyên
Xem chi tiết
Lê Trung Hiếu
Xem chi tiết
Vân Ngô
Xem chi tiết
Nguyễn Thu Trang
Xem chi tiết