// #pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
using namespace std;
#define FOR(i,p,q) for(int i=(p); i<=(q); ++i)
#define ROF(i,p,q) for(int i=(p); i>=(q); --i)
#define REP(i,q) for(int i=0; i<(q); ++i)
#define pb push_back
#define as assign
#define rz resize
#define Co const
#define all(X) X.begin(), X.end()
#define rall(X) X.rbegin(), X.rend()
#define sz(X) (int)(X.size())
#define ckmax(a,b) a=max(a,b)
#define ckmin(a,b) a=min(a,b)
#define V vector
typedef long long ll;
typedef mt19937_64 mt;
#ifndef UNCLE
typedef basic_string<bool> vb;
typedef basic_string<int> vi;
typedef basic_string<ll> vl;
#else
typedef V<bool> vb;
typedef V<int> vi;
typedef V<ll> vl;
#endif
int N,M,Z,Q;
vi h;
vl sm;
void Input(){
cin>>N>>M>>Z,Q=M+Z;
sm.as(N,0);
h.rz(N);
for(int &vv:h) cin>>vv,--vv;
}
void Solve(){
int ev,a,b;
cin>>ev>>a>>b;
if(ev==1){//zmiania
--a;
sm[a]+=b;
}else{
--a,--b;
ll pro=0,csm=0;
ROF(i,N-1,a+1) csm+=sm[i];
ROF(i,a,0){
csm+=sm[i];
if(h[i]>=b) pro+=csm;
}
cout<<pro<<"\n";
}
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
Input();
while(Q--) Solve();
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | // #pragma GCC optimize("Ofast,unroll-loops") #pragma GCC optimize("unroll-loops") #include <bits/stdc++.h> using namespace std; #define FOR(i,p,q) for(int i=(p); i<=(q); ++i) #define ROF(i,p,q) for(int i=(p); i>=(q); --i) #define REP(i,q) for(int i=0; i<(q); ++i) #define pb push_back #define as assign #define rz resize #define Co const #define all(X) X.begin(), X.end() #define rall(X) X.rbegin(), X.rend() #define sz(X) (int)(X.size()) #define ckmax(a,b) a=max(a,b) #define ckmin(a,b) a=min(a,b) #define V vector typedef long long ll; typedef mt19937_64 mt; #ifndef UNCLE typedef basic_string<bool> vb; typedef basic_string<int> vi; typedef basic_string<ll> vl; #else typedef V<bool> vb; typedef V<int> vi; typedef V<ll> vl; #endif int N,M,Z,Q; vi h; vl sm; void Input(){ cin>>N>>M>>Z,Q=M+Z; sm.as(N,0); h.rz(N); for(int &vv:h) cin>>vv,--vv; } void Solve(){ int ev,a,b; cin>>ev>>a>>b; if(ev==1){//zmiania --a; sm[a]+=b; }else{ --a,--b; ll pro=0,csm=0; ROF(i,N-1,a+1) csm+=sm[i]; ROF(i,a,0){ csm+=sm[i]; if(h[i]>=b) pro+=csm; } cout<<pro<<"\n"; } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); Input(); while(Q--) Solve(); } |
English