Cho dãy số nguyên dương a1,…,an. Với mỗi truy vấn (l,r), hãy tính gcd(al,al+1,…,ar) — ước chung lớn nhất của các phần tử trong đoạn.
Vì GCD là phép toán idempotent (gcd(x,x)=x), ta có thể dùng bảng thưa (sparse table) để trả lời mỗi truy vấn trong O(1) sau tiền xử lý O(nlogn).
Dòng đầu chứa n và q. Dòng thứ hai chứa n số nguyên dương. q dòng tiếp theo, mỗi dòng hai số l r.
1≤n,q≤2⋅105, 1≤ai≤109, 1≤l≤r≤n.
Với mỗi truy vấn, in gcd tương ứng trên một dòng.
Ví dụ:
Đầu vào:
4 2
12 18 6 30
1 2
1 4
Đầu ra:
6
6
Giải thích:
Đang tải editor...