Submission #531255

#TimeUsernameProblemLanguageResultExecution timeMemory
531255ioiFoehn Phenomena (JOI17_foehn_phenomena)C++14
100 / 100
130 ms13120 KiB
#include<bits/stdc++.h>

using namespace std;

#define debug(x) cout << '[' << #x << " is: " << x << "] " << endl;
#define inF freopen("6in.txt" , "r" , stdin);
#define outF freopen("6.txt" , "w" , stdout);
#define imod(a , n) (a % n + n ) % n
#define sor(v) sort(v.begin() , v.end());
#define print(v) for(auto f : v ) cout << f << " " ;
#define rsor(v) sort(v.rbegin() , v.rend());
#define rev(v) reverse(v.begin() , v.end());
#define scan(v)for(auto &it : v)cin >> it ;
#define ll long long
//#define int ll
#define logar(x , y) log(x) / log(y)
#define __sum(n) n * (n + 1) / 2
#define __lcm(a , b) a / __gcd(a , b) * b
#define pii pair<int , int >
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);
const int N =  1e3 + 5 ,  M = N * 64  , MX = 2e4 + 40;
const ll MOD = 1e9 + 7   , oo = 1e9 + 9 , OO = 1e18 , mod = MOD ;
const double pi = acos(-1) , eps = 1e-17 ;

int di[] = {1 , -1 , 0 , 0};
int dj[] = {0 , 0 , -1 , 1};
int s , t ;


ll calc(ll d){

    if(d < 0)return d * s ;
    else return d * t ;

}

ll dis[200005];
int32_t main()
{   //inF;
    //inF;outF;
    fastio;


    int n , q  ;
    cin >> n>> q >> s >> t ;


    long long arr[n + 1];

    for(int i = 0 ; i < n + 1;  i ++)cin >> arr[i];

    ll res = 0 ;

    for(int i = 1 ; i < n + 1 ; i ++){

        dis[i] = arr[i - 1] - arr[i];

        res += calc(dis[i]);
    }

    while(q--){
        int l , r , x ;
        cin >> l >> r >> x ;

        res -= calc(dis[l]);


        dis[l] -= x ;
        res += calc(dis[l]);

        if(r != n ){
            res -= calc(dis[r + 1]);
            dis[r + 1] += x ;
            res += calc(dis[r + 1]);

        }
        cout << res << '\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...