TS10 Điện Biên 2026 - Đếm cặp

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1500 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Gắn kết hai số nguyên là việc được thể hiện bởi chuỗi công việc sau:

  • Đầu tiên, chuyển cả hai số nguyên đó thành chuỗi.
  • Tiếp theo, gắn kết hai chuỗi đó thành một.
  • Cuối cùng, chuyển chuỗi mới thành một số nguyên.

Ví dụ, gắn kết hai số \(123\)\(45\)\(CONCAT(123, 45) = 12345\), gắn
kết hai số \(1\)\(3\)\(CONCAT(1, 3) = 13\).

Bạn được cho một dãy gồm \(N\) số nguyên \(a_1, a_2, \ldots, a_N\) và hai số
\(L, R\).

Yêu cầu: Hãy đếm xem có bao nhiêu cặp số \((i, j)\) trong đó
(\(1 \le i, j \le N\)) mà \(L \le CONCAT(a_i, a_j) \le R\).

Dữ liệu vào

Dòng thứ nhất chứa một số nguyên \(T\) (\(1 \le T \le 10^4\)) - số lượng
test. Mỗi test được mô tả như sau:

  • Dòng đầu tiên chứa ba số nguyên \(N, L, R\) (\(2 \le N \le 10^5, 1 \le L \le R \le 10^{15}\)).
  • Dòng tiếp theo chứa \(N\) số nguyên, số thứ \(i\) có giá trị \(a_i\) (\(1 \le a_i \le 10^9\)).

Tổng của \(N\) trong các test không vượt quá \(10^6\).

Dữ liệu ra

Gồm \(T\) dòng, mỗi dòng in ra một số nguyên duy nhất là số lượng cặp
\((i, j)\) thỏa mãn yêu cầu trên.

Phân nhóm

Subtasks Điểm Ràng buộc
1 \(30\%\) \(1 \le T \le 10^2; 2 \le N \le 10^2, 1 \le L \le R \le 10^{10}\)
2 \(70\%\) \(1 \le T \le 10^4; 2 \le N \le 10^5, 1 \le L \le R \le 10^{15}\)

Ví dụ

Ví dụ 1

Input
3
3 10 52
3 5 7
3 58 100
4 2 3
5 28 102
3 2 1 9 10
Output
3
0
11
Note

Ở ví dụ thứ nhất:

  • \((i=1, j=1): CONCAT(a_1, a_1) = 33\)\(10 \le 33 \le 52\).
  • \((i=1, j=2): CONCAT(a_1, a_2) = 35\)\(10 \le 35 \le 52\).
  • \((i=1, j=3): CONCAT(a_1, a_3) = 37\)\(10 \le 37 \le 52\).

Ở ví dụ thứ hai: Không có cặp số nào có thể tạo ra số nguyên lớn hơn

Bình luận (4)

Mới nhất
Tải bình luận...