Điểm:
1400 (p)
Thời gian:
2.5s
Bộ nhớ:
512M
Input:
bàn phím
Output:
màn hình
Định nghĩa: Một tên \(a\) được gọi là tiền tố của tên \(b\) nếu \(a\) xuất hiện ở phần đầu tiên của \(b\).
Sau khi vất vả ngồi gõ code,
được giao thêm nhiệm vụ đó là nhập tên các học sinh của lớp học vào máy tính.Ban đầu, công việc rất nhàm chán vì chỉ có gõ lại tên từ đầu đến cuối. Tuy nhiên trong quá trình gõ,
nhận ra một điều, đó là có thể có một vài học sinh có tên trùng nhau phần đầu (nói cách khác có các cặp tên sao cho tên này nằm ở vị trí đầu tiên của tên kia), cậu ấy có thể lợi dụng điều đó để nhập tên được nhanh hơn. Sẽ chẳng có gì đáng nói nếu chỉ có nhập vài cái tên trùng nhau, tuy nhiên lại muốn biết thêm một điều đó là có bao nhiêu cặp tên là tiền tố của một tên khác.Yêu cầu: Xác định số cặp tên, trong đó tên này là tiền tố của tên kia.
Input
- Dòng thứ nhất chứa một số nguyên dương \(n\) (\(n \le 5 \times 10^4\)).
- \(n\) dòng tiếp theo, mỗi dòng chứa một xâu kí tự là tên học sinh.
- Tổng độ dài của các xâu không vượt quá \(5 \times 10^6\).
Output
- Một dòng duy nhất chứa một số nguyên dương là số cặp tên học sinh trùng nhau phần đầu.
Scoring
- Subtask \(1\) (\(70\%\) số điểm): \(n \le 1000\).
- Subtask \(2\) (\(30\%\) số điểm): không có ràng buộc gì thêm.
Example
Test 1
Input
3
a
ab
abc
Output
3
Bình luận