题目描述
给出若干条线段,用 (x1,y1),(x2,y2)(x_1, y_1), (x_2, y_2)(x1,y1),(x2,y2) 表示其两端点坐标,现在要求支持两种操作:
0 x1 y1 x2 y2 表示加入一条新的线段 (x1,y1),(x2,y2)(x_1, y_1), (x_2, y_2)(x1,y1),(x2,y2);
1 x0 询问所有线段中,xxx 坐标在 x0x_0x0 处的最高点的 yyy 坐标是什么,如果对应位置没有线段,则输出 000。
输入格式
第一行两个正整数 nnn、mmm 为初始的线段个数和操作个数。
接下来 nnn 行,每行四个整数,表示一条线段。
接下来 mmm 行,每行为一个操作 0 x1 y1 x2 y2 或 1 x0。
输出格式
对于每一个询问操作,输出一行,为一个实数,当你的答案与标准答案误差不超过 10−210^{-2}10−2 时,则视为正确。
样例
输入
3 4
0 -1 4 1
4 2 7 2
7 1 8 2
1 4
1 3
0 3 3 6 3
1 3
输出
2
0.5
3
数据范围与提示
对于 10%10\%10% 的数据,n,m≤1000n, m \leq 1000n,m≤1000;
对于另外 20%20\%20% 的数据,所有的 1 操作都在 0 操作之后;
对于另外 20%20\%20% 的数据,所有线段的两端的 xxx 坐标都包含所有询问的 xxx 坐标,你可以将每条线段当做直线处理;
对于 100%100\%100% 的数据,1≤n≤500001 \leq n \leq 500001≤n≤50000,1≤m≤1500001 \leq m \leq 1500001≤m≤150000,x1,x2,y1,y2x_1, x_2, y_1, y_2x1,x2,y1,y2 均为整数,0