z小f的函数

题目背景

$z$小$f$热爱数学。

题目描述

由于$z$小$f$要复习$NOIp$,而且他认为觉得数学作业太简单了,于是把数学作业交给了你。 题目如下: 给定二次函数$y=ax^{2}+bx+c (a \neq 0)$,求函数的最大(小)值; $z$小$f$当然不喜欢看见做这么简单的题目啦,于是他决定给函数进行如下操作: 操作 $1$:给定系数$k$,将函数向上平移$k$位,($k$<$0$则向下平移$-k$位) 操作$2$:给定系数$k$,将函数向右平移$k$位,($k$<$0$则向左平移$-k$位) 操作$3$:给定系数$k_1,k_2$,将函数关于点$(k_1,k_2)$进行对称变换 操作$4$:给定系数$k_1,k_2$,求函数在闭区间$[k_1,k_2]$上的最小值和最大值 操作$5$:给定系数$u,v,w$,求出二次函数$y$与二次函数$y_2=ux^{2}+vx+w$是否有交点。 由于$z$小$f$需要,你还要输出最终的二次函数$y$此时的最大值(最小值)。

输入输出格式

输入格式


第一行一个正整数$T$,表示数学作业的题目数(即数据组数) 接下来$T$组数据,对于每一组数据: 第一行三个数$a,b,c$,表示二次函数的系数$a,b,c$; 第二行一个正整数$n$,表示操作的数量。 接下来$n$行,每一行都有一个整数$p$,表示操作的编号,接下来的数即操作的内容(见题目描述 ) 由于$z$小$f$太可爱了,所以数据保证合法。

输出格式


对于每一个操作$4$,输出两个小数,分别表示区间的最小值与最大值(保留两位小数); 对于每一个操作$5$,输出一个整数,其中0表示没有交点,2表示有交点; 每组数据操作完成后,输出最终的二次函数$y$此时的最大值(最小值)(保留两位小数)。

输入输出样例

输入样例 #1

1
1 0 0
4
1 3
1 -4
4 1 2
5 -1 0 -3

输出样例 #1

0.00 3.00
0
-1.00

输入样例 #2

1
-4 10 100
15
4 0 78
5 -4 -95 -97
1 -79
4 12 54
4 -60 11
1 83
4 68 80
2 -63
1 71
1 80
3 12 67
1 60
1 41
3 35 -13
4 6 26

输出样例 #2

-23456.00 106.25
2
-11103.00 -435.00
-14979.00 27.25
-24696.00 -17712.00
-6972.00 -1892.00
0.25

说明

对于30%的数据,$n<=100$,且没有操作$3$。 对于60%的数据,$n<=1000$。 对于100%的数据,$T<=10,n<=10000$ 数据保证$a \neq 0,u \neq 0,a \neq u,1<=p<=5,-100<=a,b,c,k1,k2,k,u,v,w<=100$。