Cây chữ số

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 3.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

ZS the Coder có một cây lớn và được biểu diễn dưới dạng đồ thị vô hướng liên thông của n đỉnh được đánh số từ 0 đến n1n1 cạnh nối giữa chúng. Trên mỗi cạnh có một chữ số khác không.

Một ngày nọ, ZS the Coder cảm thấy chán chường và quyết định điều tra một số tính chất của cây. Anh ấy chọn một số nguyên dương M, sao cho M là số nguyên tố cùng nhau với 10, tức là GCD(M,10)=1.

ZS xem một cặp đỉnh có thứ tự (u,v) là thú vị khi nếu anh ấy đi theo đường đi ngắn nhất từ đỉnh u đến đỉnh v và viết tất cả các chữ số mà anh ấy gặp trên con đường của mình theo thứ tự, anh ấy sẽ được một biểu diễn thập phân của một số nguyên chia hết cho M.

Cụ thể, ZS xem một cặp đỉnh có thứ tự (u,v) là thú vị nếu các điều kiện sau đúng:

  • Gọi a1=u,a2,...,ak=v là chuỗi các đỉnh trên đường đi ngắn nhất theo thứ tự từ u đến v;

  • Gọi di (1i<k) là chữ số được viết trên cạnh giữa các đỉnh aiai+1;

  • Số nguyên dương d1d2d3...dk1=i=1k1di10k1i chia hết cho M.

Hãy giúp ZS the Coder tìm số lượng cặp đỉnh thú vị!

Input

Dòng đầu tiên chứa hai số nguyên dương nM (2n100000,1M109,gcd(M,10)=1) — số đỉnh và số mà ZS đã chọn.

Trong n1 dòng tiếp theo, dòng thứ i chứa 3 số nguyên ui,vi,wi biểu diễn một cạnh nối đỉnh uivi với chữ số wi viết trên đó(0ui,vin,1wi9).

Output

Ghi ra một số nguyên duy nhất là số lượng cặp đỉnh thú vị.

Scoring

Subtask Điểm Giới hạn
1 40 n2000
2 60 Không có ràng buộc gì thêm

Sample Input 1

Copy
6 7
0 1 2
4 2 4
2 0 1
3 0 9
2 5 7

Sample Output 1

Copy
7

Sample Input 2

Copy
5 11
1 2 3
2 0 3
3 0 3
4 3 3

Sample Output 2

Copy
8

Bình luận

Hãy đọc nội quy trước khi bình luận.


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