Time limit: 4.0s , Memory limit: 512M , Points: 2500 (partial)
Cho hai mảng số nguyên dương và gồm phần tử được đánh số từ đến .
Cho ma trận kích thước , các cột được đánh số từ đến từ trên xuống dưới và các hàng được đánh số từ đến từ trái sang phải. Mỗi phần tử của ma trận được tính bởi công thức:
Thực hiện truy vấn, mỗi truy vấn bao gồm bốn số nguyên ; , yêu cầu tính giá trị ước chung lớn nhất của các phần tử ma trận nằm trong hình chữ nhật có góc trái trên và góc phải dưới , hay nói cách khác, yêu cầu tính với .
Input
- Dòng đầu tiên chứa hai số nguyên và .
- Dòng thứ hai chứa số nguyên của mảng .
- Dòng thứ ba chứa số nguyên của mảng .
- dòng tiếp theo, mỗi dòng chứa bốn số nguyên mô tả truy vấn.
Output
- Với mỗi truy vấn, in ra ước chung lớn nhất của các phần tử ma trận trên một dòng.
Examples
Sample Input
5 3
2 4 8 8 1
4 8 12 16 1
2 3 1 2
1 2 2 4
1 5 1 5
Sample Output
4
2
1
Scoring
- Subtask điểm:
- Subtask điểm: ; với mọi ; với mọi
- Subtask điểm: với mọi
- Subtask điểm: với mọi truy vấn
- Subtask điểm: Không có ràng buộc gì thêm
Notes
Trong ví dụ, với và , ma trận được xây dựng như sau:
Ở truy vấn thứ nhất, .
Comments