题目描述
给定一个长度为 n 的排列 p1,p2,…,pn,其中每个 pi 均在 [1,n] 内且互不相同。
我们考虑一个三角形网格中的点 (x,y),其中:
0≤y≤x≤n.
对于一个点 (x,y),定义 t(x,y) 为满足下列条件的最小整数 t:
#{j∣1≤j≤t,pj≤x}=x−y.
特别地,当 x=y 时,有 t(x,y)=0。
现在有 q 次询问。每次询问给出两个网格点:
(x1,y1),(x2,y2).
令:
T1=t(x1,y1),T2=t(x2,y2).
定义:
$$X=\min\left(x_1,x_2,\min_{\min(T_1,T_2)<j\le \max(T_1,T_2)}(p_j-1)\right).$$
若上式中的区间为空,则忽略区间最小值这一项。
再定义:
Y=X−#{j∣1≤j≤T1,pj≤X}.
请对每次询问输出点 (X,Y)。
输入格式
第一行一个整数 n。
第二行 n 个整数 p1,p2,…,pn,表示一个 1∼n 的排列。
第三行一个整数 q。
接下来 q 行,每行四个整数:
x1 y1 x2 y2
表示一次询问的两个点 (x1,y1) 与 (x2,y2)。
输出格式
输出 q 行。对于每次询问,输出两个整数 X,Y,中间用一个空格隔开。
样例
3
2 3 1
5
3 3 3 0
2 2 2 1
1 0 3 1
3 1 3 2
2 2 2 2
0 0
1 1
0 0
2 1
2 2
数据范围与约定
对于全部测试数据:
- 1≤n≤500000;
- 1≤q≤500000;
- p1,p2,…,pn 是 1∼n 的排列;
- 对于每个询问,0≤y1≤x1≤n,0≤y2≤x2≤n。
说明
本题坐标采用题面中的零基网格坐标,因此输出中可能出现 0。