#include using namespace std; #define ALL(a) (a).begin(),(a).end() #define ALLR(a) (a).rbegin(),(a).rend() #define spa << " " << #define lfs <= (ll)(m); i--) typedef long long ll; typedef long double ld; const ll MOD = 1e9+7; //const ll MOD = 998244353; const ll INF = 1e18; using P = pair; template void chmin(T &a,T b){if(a>b)a=b;} template void chmax(T &a,T b){if(a void ans(bool x,T1 y,T2 z){if(x)cout< void debug(vector>v,ll h,ll w){for(ll i=0;iv,ll h,ll w){for(ll i=0;i void debug(vectorv,ll n){cout< vector>vec(ll x, ll y, T w){ vector>v(x,vector(y,w));return v;} ll gcd(ll x,ll y){ll r;while(y!=0&&(r=x%y)!=0){x=y;y=r;}return y==0?x:y;} template void emp(map&m, T x){m.emplace(x,0).first->second++;} template struct BIT{ ll n; ll k=1; vectordata; BIT(ll size):n(size){ data.assign(n,0); while(k*2<=n)k*=2; } void add(ll a,T w){ for(ll i=a+1;i<=n;i+=i&-i)data[i-1]+=w; } T sum(ll a){ T ret = 0; for(ll i=a+1;i>0;i-=i&-i)ret+=data[i-1]; return ret; } T sum(ll a,ll b){return a==0?sum(b):sum(b)-sum(a-1);} ll lower_bound(ll x){ ll ret=0; for(ll i=k;i>0;i/=2){ if(ret+i<=n&&data[ret+i-1]>n>>q; vector

a(n); rep(i,0,n)cin>>a[i].fi; rep(i,0,n)a[i].se=i; vectorb(q); rep(i,0,q){ ll k; cin>>k; cin>>b[i].l>>b[i].r>>b[i].x; b[i].l--;b[i].r--; b[i].idx=i; } sort(ALL(b),[](struct p x,struct p y){return x.x>y.x;}); sort(ALLR(a)); BITbit1(n),bit2(n); ll cnt=0; vectorret(q); rep(i,0,q){ while(cntb[i].x){ bit1.add(a[cnt].se,a[cnt].fi); bit2.add(a[cnt].se,1); cnt++; } ll reta=bit1.sum(b[i].l,b[i].r); ll retb=bit2.sum(b[i].l,b[i].r); ret[b[i].idx]=reta-retb*b[i].x; } rep(i,0,q)cout<