#P5139. z小f的函数

z小f的函数

题目背景

z 小 f 热爱数学。

由于 z 小 f 要复习 NOIp,而且他认为觉得数学作业太简单了,于是把数学作业交给了你。

题目描述

给定二次函数 y=ax2+bx+c(a0)y=ax^{2}+bx+c(a\ne0),并给函数进行如下操作:

  • 操作 1:给定系数 kk,将函数向上平移 kk 位(k<0k<0 则向下平移 k-k 位);
  • 操作 2:给定系数 kk,将函数向右平移 kk 位(k<0k<0 则向左平移 k-k 位);
  • 操作 3:给定系数 k1,k2k_1,k_2,将函数关于点 (k1,k2)(k_1,k_2) 进行对称变换;
  • 操作 4:给定系数 k1,k2k_1,k_2,求函数在闭区间 [k1,k2][k_1,k_2] 上的最小值和最大值;
  • 操作 5:给定系数 u,v,wu,v,w,求出二次函数 yy 与二次函数 y2=ux2+vx+wy_2=ux^{2}+vx+w 是否有交点。

此外,你还要输出最终的二次函数 yy 此时的最大(小)值。

输入格式

第一行一个正整数 TT,表示数学作业的题目数(即数据组数)。

接下来 TT 组数据,对于每一组数据:

第一行三个数 a,b,ca,b,c,表示二次函数的系数 a,b,ca,b,c

第二行一个正整数 nn,表示操作的数量。

接下来 nn 行,每一行都有一个整数 pp,表示操作的编号,接下来的数即操作的内容(见题目描述)。

数据保证合法。

输出格式

对于每一个操作 4,输出两个小数,分别表示区间的最小值与最大值(保留两位小数);

对于每一个操作 5,输出一个整数,其中 00 表示没有交点,22 表示有交点;

每组数据操作完成后,输出最终的二次函数 yy 此时的最大(小)值(保留两位小数)。

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

0.00 3.00
0
-1.00

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

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

提示

对于 30%30\% 的数据,n100n\le100,且没有操作 3。

对于 60%60\% 的数据,n1000n\le1000

对于 100%100\% 的数据,T10T\le10n10000n\le10000

数据保证 $a\ne0,u\ne0,a\ne u,1\le p\le5,-100\le a,b,c,k1,k2,k,u,v,w\le100$。