Cho dãy số nguyên dương thỏa mãn .
Từ dãy số trên ta xây dựng một cây có đỉnh bao gồm mức với số đỉnh lần lượt là theo cách sau:
- Ở mức thứ có các đỉnh được gán nhãn ;
- Trừ mức , ở mỗi mức, đỉnh có nhãn có nút con, các đỉnh còn lại chỉ có nút con.
Một cây được xây dựng từ dãy
Có truy vấn, mỗi truy vấn có dạng “Nút cha lớn nhất của và là nút nào?” Tức là ta cần tìm đỉnh có nhãn lớn nhất và là nút cha chung của và .
Dữ liệu vào:
- Dòng đầu chứa ba số nguyên là số phần tử của dãy, số truy vấn và tham số để xác định nhãn của các đỉnh trong các quy vấn;
- Dòng thứ hai chứa phần tử của dãy ;
- dòng tiếp theo, dòng thứ chứa hai số được sử dụng để xác định nhãn của truy vấn thứ .
Gọi là đáp án của truy vấn thứ . Khi đó, nhãn của truy vấn thứ được xác định như sau:
ở đây là phép chia lấy phần dư.
Lưu ý: Khi thì .
Dữ liệu ra:
- Ghi ra dòng, dòng thứ là đỉnh có nhãn lớn nhất là cha chung của và .
Ví dụ:
Dữ liệu vào:
3 5 0
1 2 6
7 10
8 5
6 2
9 10
2 3
Dữ liệu ra:
Dữ liệu vào:
3 5 1
1 2 6
7 10
8 5
6 2
9 10
2 3
Dữ liệu ra:
Giải thích:
Trong cả hai test ví dụ thì cây được cho bởi hình trên. Đối với test ví dụ thứ ta có:
- , cha chung là ;
- , cha chung là ;
- , cha chung là ;
- , cha chung là ;
- , cha chung là .
Giới hạn:
- Subtask số điểm có ;
- Subtask số điểm khác có ;
- Subtask số điểm khác có ;
- Subtask số điểm còn lại có .