#CF1990F. Polygonal Segments
Polygonal Segments
CF1990F Polygonal Segments
题目描述
给定一个长度为 的数组 。
一个区间 ()被称为多边形区间,当且仅当满足以下条件:
- ;
- 将 作为边长时,这些边可以组成一个有 条边的多边形。
现在有 个操作,操作有两种类型:
- “1 l r”:在所有满足 的多边形区间 中,求最长的区间长度。如果不存在这样的多边形区间,输出 ;
- “2 i x”:将 赋值为 。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
对于每个测试用例:
- 每个测试用例的第一行包含两个整数 和 (,);
- 第二行包含 个整数 ();
- 接下来的 行,每行描述一个操作,格式如下:
- “1 l r” (,);
- “2 i x” (,)。
保证所有测试用例中 的总和不超过 , 的总和不超过 。
输出格式
对于每个查询,如果不存在满足条件的区间,输出 ,否则输出满足条件的最长区间的长度,每个结果占一行。
输入输出样例 #1
输入 #1
2
5 6
3 1 2 2 8
1 1 3
1 1 4
1 1 5
2 1 5
1 1 4
1 1 5
4 10
500000000000 500000000000 1000000000000 500000000000
1 1 3
1 2 4
1 1 4
2 1 499999999999
2 3 999999999999
1 1 3
1 2 4
1 1 4
2 3 1000000000000
1 1 3
输出 #1
-1
4
4
3
5
-1
-1
4
-1
3
4
-1
说明/提示
在第一个测试用例的第一个查询中,没有满足条件的多边形区间。例如,考虑区间 ,无法用边长 、、 组成三角形。
在第一个测试用例的第二个查询中,最长的多边形区间是 。你可以用边长 、、、 组成一个四边形。
这是一个边长为 、、、 的四边形示意图。
由 ChatGPT 4.1 翻译