//
// Created by Dan on 2025/10/14.
//
#include <bits/stdc++.h>
//#pragma GCC optimize(2)
using namespace std;
#define ull unsigned long long
#define PII pair<long long ,long long >
#define PIII pair<int, pair<int,int>>
#define pll pair<long long,long long>
#define f1n(x, n) for (int x = 1; x <= n; ++x)
#define fff(x, s, n) for (int x = s; x <= n; ++x)
#define ffr(x, s, t) for (int x = s; x >= t; --x)
#define f0n(x, n) for (int x = 0; x < n; ++x)
#define fn0(x, n) for(int x = n-1; x>=0; x--)
#define fn1(x, n) for(int x = n; x>0; x--)
#define double long double
#define vi vector<int>
#define LL long long
#define ll long long
#define vl vector<int>
#define vn vector<node>
#define vd vector<double>
#define vvl vector<vector<int>>
#define vvd vector<vector<double>>
#define vvvl vector<vector<vector<int>>>
#define vv(type) vector<vector<type>>
#define vp vector<pair<ll,ll>>
#define vpt vector<pt>
#define nvvl(n, m) vector<vector<int>>(n,vector<int>(m,0))
#define nvvd(n, m) vector<vector<double>>(n,vector<double>(m,0))
#define nvvdv(n, m, v) vector<vector<double>>(n,vector<double>(m,v))
#define nvvvl(n, m, t) vector<vector<vector<int>>>(n,vector<vector<int>>(m,vector<int>(t)))
#define nvvlt(n, m, t) vector<vector<t>>(n,vector<t>(m,0))
#define nvvlv(n, m, v) vector<vector<int>>(n,vector<int>(m,v))
#define int long long
static int DX[8] = {-1, -1, -1, 0, 0, 1, 1, 1};
static int DY[8] = {-1, 0, 1, -1, 1, -1, 0, 1};
const ll inf = 1e18;
int mod = 998244353;
using namespace std;
void solve() {
int n, q;
cin >> n >> q;
vl a(n + 1);
f1n(i, n)cin >> a[i];
while (q--) {
int op;
cin >> op;
if (op == 1) {
int l, r, x;
cin >> l >> r >> x;
fff(i, l, r)a[i] += x;
} else {
int l, r, x;
int ans = 0;
cin >> l >> r >> x;
fff(i, l, r) {
if (a[i] < x)
ans++;
}
cout << ans << endl;
}
}
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//init();
int case_number = 1;
//cin >> case_number;
while (case_number--) {
solve();
}
}
很水的题,n方暴力用时只有1.5秒


京公网安备 11010502036488号