제출 #1333966

#제출 시각아이디문제언어결과실행 시간메모리
1333966lywoemFoehn Phenomena (JOI17_foehn_phenomena)C++20
10 / 100
72 ms7152 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define l(a, b, i) for (ll i = a; i < b; i++)
#define rl(a, b, i) for (ll i = a; i >= b; i--)
#define vpair vector<pair<ll, ll>>
#define inf LLONG_MAX
#define ninf LLONG_MIN

vector<ll> ft; 
ll N, Q, S, T, L, R, X;

ll ls (ll x) { 
    return (x & (-x));
}

ll query (ll p) { 
    ll sum = 0;
    for (; p; p -= ls(p)) { 
        sum += ft[p];
    }
    return sum;
}

void update (ll l, ll r, ll v) { // Kiểu giống difference array á 
    r++;
    for (; l <= N; l += ls(l)) {
        ft[l] += v;
    }

    for (; r <= N; r += ls(r)) {
        ft[r] -= v;
    }
}

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    cin >> N >> Q >> S >> T; vector<ll> vec(N + 1, 0);
    ft.assign(N + 1, 0);
    l(0, N + 1, i) cin >> vec[i]; // initial altitude

    l(1, N + 1, i) update(i, i, vec[i]);
    

    l(1, Q + 1, i) {
        cin >> L >> R >> X;
        update(L, R, X);
        ll last = query(N);

        cout << last * T * (-1) << "\n";
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...