제출 #1258769

#제출 시각아이디문제언어결과실행 시간메모리
1258769khanhanFoehn Phenomena (JOI17_foehn_phenomena)C++20
100 / 100
295 ms7328 KiB
#include <bits/stdc++.h>
using namespace std;
long long  h[2000005];
long long  d[2000005];
int   main()
{
    long long  n, q, s, t;
    cin >> n >> q >> s >> t;
    for (long long  i = 0; i <= n; i++)
    {
        cin >> h[i];
    }
    
    for (long long  i = 0; i <= n - 1; i++)
    {
        d[i] = h[i + 1] - h[i];
    }
    long long domet =0 ;
    for (long long  i = 0; i < n; i++)
    {
        if (d[i] < 0)
        {
            domet += t * abs(d[i]);
        }
        else
        {
            domet -= s * abs(d[i]);
        }
    }
    while (q--)
    {
        long long  l, r, x;
        cin >> l >> r >> x;
        if (l - 1 >= 0)
        {
            if (d[l - 1] >= 0)
            {
                domet += s * abs(d[l - 1]);
            }
            else
            {
                domet -= t * abs(d[l - 1]);
            }
            d[l - 1] += x;
            if (d[l - 1] > 0)
            {
                domet -= s * abs(d[l - 1]);
            }
            else
            {
                domet += t * abs(d[l - 1]);
            }
        }

        if (r <= n - 1)
        {
            if (d[r] > 0)
            {
                domet += s * abs(d[r]);
            }
            else
            {
                domet -= t * abs(d[r]);
            }
            d[r] -= x;
            if (d[r]>0){
                domet -= s* abs(d[r]) ; 

            }else { 
                domet += t*abs(d[r]); 
            }
        }
        cout <<domet<<endl;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...