暴力写法 Onm的复杂度。
等下更新 jls线段树和分块的写法
#include <bits/stdc++.h>
using namespace std;
const int M = 100005;
int a[M], p[M];
int main() {
int n, m;
scanf("%d%d", &n, &m);
for (int i = 1; i < n + 1; ++i) scanf("%d", &a[i]);
while (m--)
{
int op, l, r, t;
scanf("%d%d%d%d", &op, &l, &r, &t);
if (op == 1)
for (int i = l; i < r + 1; ++i)
a[i] = min(a[i], t);
else
{
memset(p, 0, sizeof(p));
for (int i = l; i < r + 1; ++i) ++p[a[i]];
int tem = 0;
for (int i = 1; i < n + 1; ++i) {
tem += p[i];
if (tem >= t) {
printf("%d\n", i);
break;
}
}
}
}
return 0;
}