BOI 2011 - Đạo văn
Xem PDFCác thí sinh của Cuộc thi Lập trình Thế giới đã nộp \(N\) tệp lời giải \(f_1,\ldots,f_N\) lên hệ thống chấm. Trước khi công nhận kết quả cuối cùng, ban giám khảo muốn loại trừ mọi khả năng đạo văn. Họ có một chương trình nhận hai tệp và so sánh để xác định liệu chúng có quá giống nhau hay không.
Tuy nhiên, số tệp khá lớn nên so sánh mọi cặp sẽ mất quá nhiều thời gian. Mặt khác, có thể nhanh chóng bỏ qua nhiều cặp vì kích thước của hai tệp chênh lệch quá nhiều.
Cụ thể, ban giám khảo quyết định bỏ qua mọi cặp mà kích thước tệp nhỏ hơn chưa đạt 90% kích thước tệp lớn hơn. Do đó, chỉ cần kiểm tra những cặp tệp khác nhau \((f_i,f_j)\) thỏa mãn
Mỗi cặp tệp chỉ được tính một lần. Hãy viết chương trình tính số cặp phải kiểm tra.
Dữ liệu vào
Dòng đầu tiên chứa số nguyên \(N\), là số tệp lời giải đã nộp.
Dòng thứ hai chứa \(N\) số nguyên \(\operatorname{size}(f_1),\ldots,\operatorname{size}(f_N)\), lần lượt là kích thước của từng tệp.
Dữ liệu ra
In một số nguyên duy nhất: số cặp tệp cần kiểm tra.
Ràng buộc
- \(1 \le N \le 100\,000\).
- \(1 \le \operatorname{size}(f_i) \le 100\,000\,000\).
Phân nhóm
- Trong các bộ dữ liệu có tổng cộng 50 điểm, \(1 \le N \le 2\,000\).
- 50 điểm còn lại không có ràng buộc bổ sung.
Ví dụ
Ví dụ 1
Input
2
2 1
Output
0
Ví dụ 2
Input
5
1 1 1 1 1
Output
10
Giải thích
Mỗi tệp đều phải được so sánh với mọi tệp khác, nhưng mỗi cặp chỉ tính một lần.
Kỳ thi:
- BOI 2011 - Ngày 2 (2 Tháng 1., 2011)
Bình luận