for (int i = 1; i <= n; i++) for (int j = i; j>=2; j‐‐) if ( a[j] < a[j‐1] ){ int t = a[j‐1]; a[j‐1] = a[j]; a[j] = t; }
输入的第一行包含两个正整数 n, Q,表示数组长度和操作次数。保证 1≤n≤8,000,1≤Q≤2×105。
输入的第二行包含 n 个空格分隔的非负整数,其中第i 个非负整数表示 ai。保证1≤ai≤109。
接下来 Q 行,每行 2 ∼ 3 个正整数,表示一次操作,操作格式见题目描述。
3 4
3 2 1
2 3
1 3 2
2 2
2 3
1
1
2
【样例 1 解释】
在修改操作之前,假设 H 老师进行了一次插入排序,则原序列的三个元素在排序结束后所处的位置分别是 3, 2, 1。
注意虽然此时 a2=a3,但是我们不能将其视为相同的元素。
对于所有测试数据,满足 1≤n≤8,000, 1≤Q≤2×105, 1≤x≤n, 1≤v1≤v, ai≤109。
对于所有测试数据,保证在所有 Q 次操作中,至多有 5000 次操作属于类型一。