T1:序列
改不起A组,来写博客了。
题目:
Fiugou想要在一个长度为N的序列A中找到不同位置的三个数,以这三个数为三边长来构成一个三角形。但是它希望在满足条件下,这三个数的位置尽量靠前。具体地,设这三个数的为Ai,Aj,Ak(i<j<k), Fiugou希望k尽量小;当k相等时,满足j尽量小;当k,j均相等时,满足i尽量小。
但是这个序列中的数可能会发生变化。所以Fiugou给出了M个操作,形式如下:
1 x y:将Ax改为y
2:查询最优的合法解,从小到大给出这三个数(而不是位置)。
输入
第一行一个整数N,代表序列的长度。
第二行有N个整数,代表初始序列。
第三行一个整数M,代表操作的个数。
接下来M行操作,两种操作格式如上所述。
输出
共M行,每行三个数,从小到大给出。如果不存在,输出-1 -1 -1。
样例输入
6 7 1 3 4 5 1 3 2 1 3 5 2
样例输出
3 5 7 4 5 7
暴力
是的你没看错
出题人不可能卡得了你
我们看一看不可行的情况,a1+a2<=a3
因为a有上限,那么ai+a[i+1]=a[i+2]肯定是最劣情况
很容易看出来,最劣就是斐波那契数列
1 2 3 5 8 13 21 34····
最大也就50来项
1000*(50^3)绝对不会超
亏我打了优化反而错了
真棒