trang chủ / bài tập / seqdigit

Chữ số trong dãy khối

Đề bài

Mô tả

Xét một dãy vô hạn được tạo thành từ các khối liên tiếp. Khối thứ i là dãy các số nguyên dương từ 1 đến i viết liền nhau. Cụ thể:

  • Khối thứ 1 gồm các số từ 1 đến 1.
  • Khối thứ 2 gồm các số từ 1 đến 2.
  • Khối thứ 3 gồm các số từ 1 đến 3.
  • ...
  • Khối thứ i gồm các số từ 1 đến i.

Ghép tất cả các khối lại theo thứ tự, ta được dãy chữ số:

112123123412345

Ví dụ, 56 phần tử đầu tiên của dãy là:

11212312341234512345612345671234567812345678912345678910

Các phần tử của dãy được đánh số từ 1. Chẳng hạn, phần tử thứ 11, phần tử thứ 32, phần tử thứ 205, phần tử thứ 382, phần tử thứ 560.

Cho q truy vấn độc lập. Với mỗi truy vấn cho một số nguyên k, hãy tìm chữ số đứng ở vị trí thứ k của dãy.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên q: số lượng truy vấn.
  • Mỗi dòng trong q dòng tiếp theo chứa một số nguyên k: vị trí cần tìm.

Dữ liệu ra

In ra q dòng. Dòng thứ i chứa một chữ số duy nhất, là chữ số ở vị trí k của truy vấn thứ i.

Ràng buộc

  • 1q500
  • 1k1018

Ví dụ

Input Output Giải thích
5
1
3
20
38
56
1
2
5
2
0
Các vị trí này được mô tả trực tiếp trong đề. Vị trí 56 rơi vào chữ số 0 (chữ số cuối của số 10).
4
2132
506
999999999999999999
1000000000000000000
8
2
4
1
Truy vấn với các vị trí rất lớn, tới 1018.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0