Submission #910095

# Submission time Handle Problem Language Result Execution time Memory
910095 2024-01-17T21:56:42 Z raphaelp Foehn Phenomena (JOI17_foehn_phenomena) C++14
0 / 100
419 ms 9556 KB
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int N, Q, U, D;
    cin >> N >> Q >> U >> D;
    vector<int> alt(N + 1);
    vector<int> diff(N + 1);
    long long sum = 0;
    for (int i = 0; i <= N; i++)
    {
        cin >> alt[i];
        if (i == 0)
            continue;
        diff[i] = alt[i] - alt[i - 1];
        if (diff[i] > 0)
            sum -= diff[i] * U;
        else
            sum -= diff[i] * D;
    }
    for (int i = 0; i < Q; i++)
    {
        int l, r, x;
        cin >> l >> r >> x;
        if (x > 0)
        {
            if (diff[l] < 0)
            {
                sum -= min(abs(diff[l]), x) * D;
                if (abs(diff[l]) < x)
                    sum -= (x + diff[l]) * U;
            }
            else
                sum -= x * U;
            diff[l] += x;
            if (r != N)
            {
                if (diff[r + 1] > 0)
                {
                    sum += min(diff[r + 1], x) * U;
                    if (diff[r + 1] < x)
                        sum += (x - diff[l]) * D;
                }
                else
                    sum += x * D;
                diff[r + 1] -= x;
            }
        }
        else
        {
            if (diff[l] > 0)
            {
                sum += min(diff[l], abs(x)) * U;
                if (diff[l] < abs(x))
                    sum += (abs(x) - diff[l]) * D;
            }
            else
                sum += abs(x) * D;
            diff[l] += x;
            if (r != N)
            {
                if (diff[r + 1] < 0)
                {
                    sum -= min(abs(diff[r + 1]), abs(x)) * D;
                    if (abs(diff[r + 1]) < abs(x))
                        sum -= (abs(x) + diff[r + 1]) * U;
                }
                else
                    sum -= abs(x) * U;
                diff[r + 1] -= x;
            }
        }
        cout << sum << '\n';
    }
}
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 419 ms 9556 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -