#ZL32704. 二次方程族查询系统

    ID: ZL32704 传统题 2000ms 128MiB 尝试: 0 已通过: 0 普及 上传者: 标签>M3M3第二学期M3-第27课一元二次方程判别式、实数根数量、根的类型与抛物线交点启蒙判别式单调边界算法相关算法-区间计数算法-精确整数运算作业题

二次方程族查询系统

二次方程族查询系统

题目描述

维护参数方程ax²+bx+(c+k)=0。TYPE k查询一个k的TWO/DOUBLE/NONE;COUNT L R统计区间;FIRST kind L R寻找升序第一个指定类型参数。

输入格式

第一行输入固定a、b、c;第二行输入查询数q;接下来q行各输入一条查询。

数据范围与约定

  • 1a1091\le |a|\le 10^9b,c109|b|,|c|\le 10^91q2×1051\le q\le 2\times 10^5
  • TYPE 中的 k1018|k|\le 10^{18}COUNTFIRST1018LR1018-10^{18}\le L\le R\le 10^{18}
  • 查询区间可能很大,不能逐个枚举 kk。判别式 D(k)=b24a(c+k)D(k)=b^2-4a(c+k) 关于 kk 单调,可据此确定三类参数各自对应的连续区间。
  • 计算判别式及区间边界时应使用足够宽的整数类型。

输出格式

TYPE输出类型;COUNT输出TWO t DOUBLE d NONE n;FIRST找到时输出k,找不到输出NONE。区间均为闭区间。

样例

输入

1 0 0
5
TYPE -1
TYPE 0
TYPE 2
COUNT -2 2
FIRST NONE -5 5

输出

TWO
DOUBLE
NONE
TWO 2 DOUBLE 1 NONE 2
1