Submission

Status:

(PPPPPPPPPPPPP)(PPPTSSS)(SSSSSSSSS)

Subtask/Task Score:

{30/30}{0/30}{0/40}

Score: 30

User: kittipos

Problemset: Red Zone

Language: cpp

Time: 1.095 second

Submitted On: 2026-03-09 23:21:46

#include <bits/stdc++.h>

using namespace std;

const int MOD = 1e9+7;


int32_t main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int n, m, l, d;
    cin >> n >> m >> l >> d;
    vector<int> home;
    home.resize(n);
    for (int i = 0; i < n; i++) {
        cin >> home[i];
    }

    int cnt = n;
    int last = -1;

    for (int i = 0; i < m; i++) {
        int index;
        cin >> index;
        index--;

        for (int j = (-l); j <= l; j++) {
            if (index + j < 0 || index + j >= n) continue;
            int bf = home[index+j];
            home[index+j] -= d;
            home[index+j] = max(home[index+j], 0);
            if (bf > 0 && home[index+j] == 0) {
                cnt--;
            }
        }
        if (cnt == 0) {
            cout << i+1;
            return 0;
        }
    }
    cout << -1;
    
    return 0;
}