Submission #821898

# Submission time Handle Problem Language Result Execution time Memory
821898 2023-08-11T20:08:37 Z PurpleCrayon Dungeon 3 (JOI21_ho_t5) C++17
0 / 100
4000 ms 7708 KB
#include <bits/stdc++.h>
using namespace std;

#define sz(v) int(v.size())
#define ar array
typedef long long ll;
const int N = 5e2+10, MOD = 998244353;

void solve() {
    int n, m; cin >> n >> m;
    vector<ll> a(n); for (auto& x : a) cin >> x;
    vector<ll> b(n); for (auto& x : b) cin >> x;

    vector<int> prv(n, -1), nxt(n, n);
    {
        vector<int> st;
        for (int i = 0; i < n; i++) {
            while (sz(st) && b[st.back()] >= b[i]) st.pop_back();
            if (sz(st)) prv[i] = st.back();
            st.push_back(i);
        }
    }

    {
        vector<int> st;
        for (int i = n-1; i >= 0; i--) {
            while (sz(st) && b[st.back()] > b[i]) st.pop_back();
            if (sz(st)) nxt[i] = st.back();
            st.push_back(i);
        }
    }

    auto sum = [&](int l, int r) {
        assert(l <= r);
        ll ans = 0;
        for (int i = l; i <= r; i++) ans += a[i];
        return ans;
    };

    while (m--) {
        int l, r, cap; cin >> l >> r >> cap, --l, --r;

        bool bad = 0;
        for (int i = l; i < r; i++) {
            if (a[i] > cap) {
                bad = 1;
            }
        }

        if (bad) {
            cout << -1 << '\n';
            continue;
        }

        ll ans = 0;
        for (int i = l; i < r; i++) {
            ll lose = 0;
            if (prv[i] >= l)
                lose = max(0LL, cap - sum(prv[i], i-1));

            ans += max(0LL, min((long long) cap, sum(i, min(r-1, nxt[i]-1)) - lose)) * b[i];
        }
        
        cout << ans << '\n';
    }
}

int main() {
    ios::sync_with_stdio(false); cin.tie(0);
    int T = 1;
    // cin >> T;
    while (T--) solve();
}

# Verdict Execution time Memory Grader output
1 Incorrect 35 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 4043 ms 2648 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 4041 ms 7708 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 35 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -