Rà soát trùng số áo cầu thủ và ước lượng năng lực xử lí
Thang điểm 10 · 5 test case chấm tự động · 3 tiêu chí chấm
Danh sách đăng ký của một giải bóng đá phong trào ghi số áo của n cầu thủ. Nếu hai cầu thủ có cùng số áo, trọng tài dễ ghi nhầm biên bản trận đấu, nên ban tổ chức cần một thuật toán rà soát để đếm số cặp cầu thủ (i, j) với i < j mà số áo trùng nhau.
Em hãy tự thiết kế thuật toán dùng hai vòng lặp lồng nhau để giải quyết bài toán trên (không dùng hàm dựng sẵn để đếm phần tử trùng), sau đó tận dụng chính đặc điểm độ phức tạp O(n2) của thuật toán này để ước lượng: với thời gian xử lí cho phép T giây và tốc độ máy tính S phép tính cơ bản/giây, kích thước danh sách cầu thủ tối đa k mà thuật toán còn xử lí kịp là giá trị lớn nhất thoả k*k <= T*S (hãy tự tìm k bằng một vòng lặp tăng dần, không dùng hàm tính căn bậc hai có sẵn).
Định dạng vào: Dòng 1 là số nguyên n; dòng 2 gồm n số nguyên là số áo các cầu thủ; dòng 3 gồm hai số nguyên T và S cách nhau bởi khoảng trắng.
Định dạng ra: In ra hai dòng: dòng 1 là số cặp cầu thủ trùng số áo trong danh sách đã cho; dòng 2 là giá trị k lớn nhất mà thuật toán O(n2) này có thể xử lí trong T giây với tốc độ S phép/giây.
| Input | Output | Giải thích |
|---|---|---|
| 5 7 10 7 15 10 1 1000000 | 2 1000 | Có 2 cặp trùng: (7,7) và (10,10); với T=1, S=106 thì k lớn nhất là 1000 vì 1000*1000=1000000 |
| 4 1 2 3 4 60 1000000 | 0 7745 | Không có cặp trùng; với T*S=6*107, k lớn nhất là 7745 vì 7745*7745<=60000000 nhưng 7746*7746>60000000 |
Giáo viên giao bài này cho lớp, học sinh nộp bài trực tuyến và được chấm tự động.
Giáo viên đăng nhập để giao bàiBài tập khác lớp 11
- Ước lượng thời gian chấm điểm bài thi trắc nghiệm · Lập trình
- Đo đường chéo sân tập thể thao · Lập trình
- Chồng sách trên bàn học · Lập trình
- Thống kê quãng đường chạy bộ của CLB · Lập trình
- Đếm số cách đóng gói đều sản phẩm · Lập trình
- Theo dõi số bước chân của nhóm tập luyện · Lập trình