[Buổi 4][Tiền xử lý số học & truy vấn số nguyên][ADV] Bài 1: Chu kỳ đồng bộ chung mạnh nhất
Chu kỳ đồng bộ chung mạnh nhất
Bối cảnh và bài toán
Mỗi thiết bị trong một cụm có một chu kỳ đồng bộ nguyên x[i]. Hai thiết bị có thể chạy chung một nhịp nếu nhịp đó chia hết cả hai chu kỳ. Đội vận hành muốn chọn hai thiết bị sao cho nhịp đồng bộ chung lớn nhất có thể.
Số thiết bị và miền chu kỳ đều lớn, nên xét mọi cặp là không khả thi.
Yêu cầu
Tìm giá trị lớn nhất có thể của gcd(x[i], x[j]) với i != j.
Input
- Dòng 1: số nguyên
n. - Dòng 2:
nsố nguyên dươngx[i].
Output
In một số nguyên — GCD lớn nhất của một cặp phần tử khác vị trí.
Ràng buộc
2 <= n <= 2 * 10^51 <= x[i] <= 10^6
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 20% | n ≤ 200, x[i] ≤ 10^4 | 01–04 |
| S2 | 30% | n ≤ 2*10^4, x[i] ≤ 10^6 | 05–10 |
| S3 | 50% | Không có ràng buộc bổ sung | 11–20 |
Ví dụ 1
Input
5
3 14 15 7 9
Output
7
Giải thích. Cặp 14 và 7 có GCD bằng 7, và không có cặp nào đạt GCD lớn hơn.
Ví dụ 2
Input
4
8 12 16 20
Output
8
Giải thích. Cặp 8 và 16 có GCD bằng 8.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M02-B04-ADV01 |
| Buổi | B04 |
| Loại bài | ADVANCED |
| Mức độ khó | Khó (Hard) |
| Thời gian làm bài khuyến nghị | 60 phút |
| Time limit | 2 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++17 |
Nguồn: Phỏng theo CSES Problem Set — Common Divisors (Task 1081). Tham khảo: https://cses.fi/problemset/task/1081/
Comments