Một số nguyên dương được gọi là hợp lệ nếu nó chia hết cho từng chữ số khác 0 xuất hiện trong biểu diễn thập phân của chính nó. Chữ số 0 không đặt ra điều kiện chia hết.
Với mỗi đoạn đóng [l,r], hãy đếm các số hợp lệ trong đoạn.
Input
Dòng đầu chứa số nguyên T.
Mỗi trong T dòng tiếp theo chứa hai số nguyên l và r.
Output
Với mỗi truy vấn, in số lượng số hợp lệ trong [l,r].
Constraints
1≤T≤10.
1≤l≤r≤9⋅1018.
Chữ số 0 không tạo điều kiện chia hết.
Scoring
Subtask 1 (50 điểm):T≤5 và r≤200,000.
Subtask 2 (50 điểm): Không có giới hạn bổ sung.
Example
Test 1
Input
1
10 20
Output
5
Giải thích: Các số hợp lệ là 10,11,12,15,20; mỗi số chia hết cho mọi chữ số khác 0 của nó.
Lời giải tóm tắt
Ý tưởng: LCM của mọi chữ số khác 0 luôn là một ước của 2520. Digit DP lưu phần dư của số modulo 2520 và chỉ số LCM hiện tại; cuối cùng kiểm tra phần dư chia hết cho LCM.
Tính đúng đắn: Ta chứng minh theo thứ tự các vị trí được duyệt. Ở mỗi trạng thái, các thành phần của trạng thái lưu đúng toàn bộ thông tin về tiền tố đã chọn có thể ảnh hưởng đến phần còn lại. Mỗi chữ số hoặc bit hợp lệ tiếp theo được xét đúng một lần, đồng thời điều kiện giới hạn bảo đảm tiền tố không vượt cận đang đếm. Vì thế mọi giá trị hợp lệ xuất hiện đúng một đường đi và mọi đường đi được cộng đều tương ứng với một giá trị hợp lệ. Khi dùng hiệu hai hàm tiền tố, mỗi phần tử trong đoạn đóng được tính đúng một lần.
Độ phức tạp: O(19·2520·48·10) trạng thái/chuyển được tái sử dụng cho mọi truy vấn và O(19·2520·48) bộ nhớ.
Ý tưởng: Duyệt từng số và thử chia cho từng chữ số khác 0 của nó.