Submission #946955

# Submission time Handle Problem Language Result Execution time Memory
946955 2024-03-15T08:24:44 Z mariamp1 Foehn Phenomena (JOI17_foehn_phenomena) C++17
0 / 100
429 ms 9580 KB
#include <iostream>
#include <vector>
#include <algorithm>
//#define int long long;
using namespace std;

const int maxn = 2e5+10;
int n, q, a[maxn];
int sum, dif[maxn], s, t;
 
int32_t main()
{
    cin >> n >> q >> s >> t;
 
    for(int i = 0 ; i <= n; i++) cin >> a[i];
 
    for(int i = 1 ; i <= n ; i++)
    {
        dif[i] = a[i]-a[i-1];
        if(dif[i] <= 0) sum += abs(dif[i]*t);
        else sum -= abs(dif[i]*s);
    }
 
    //cout << sum << endl;
 
    dif[0] = dif[n+1] = 0;
 
    //for(int i = 1 ; i <= n ; i++) cout << dif[i] << ' ';
    //cout << endl;
 
    for(int i = 0 ; i < q ; i++)
    {
        int l, r, x;
        cin >> l >> r >> x;
 
        //cout << dif[l] << ' ' << dif[r+1] << endl;
 
        if(dif[l] <= 0) sum -= abs(dif[l]*t);
        else sum += abs(dif[l]*s);
 
        if(dif[r+1] <= 0) sum -= abs(dif[r+1]*t);
        else sum += abs(dif[r+1]*s);
 
        dif[l] += x;
        if(r+1 <= n) dif[r+1] -= x;
 
        if(dif[l] <= 0) sum += abs(dif[l]*t);
        else sum -= abs(dif[l]*s);
 
        if(dif[r+1] <= 0) sum += abs(dif[r+1]*t);
        else sum -= abs(dif[r+1]*s);
    
        //cout << dif[l] << ' ' << dif[r+1] << endl;
 
        cout << sum << endl;
    
    //    for(int i = 1 ; i <= n ; i++) cout << dif[i] << ' ';
    }
}
# Verdict Execution time Memory Grader output
1 Correct 4 ms 344 KB Output is correct
2 Incorrect 4 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 429 ms 8616 KB Output is correct
2 Correct 416 ms 9300 KB Output is correct
3 Incorrect 426 ms 9580 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 344 KB Output is correct
2 Incorrect 4 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -