Submission

Status:

(PPPPPPPPPPPPP)(PPPPPPP)(PPPPPPPPP)

Subtask/Task Score:

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

Score: 100

User: 12345678

Problemset: Red Zone

Language: cpp

Time: 0.016 second

Submitted On: 2025-11-27 21:51:18

#include <bits/stdc++.h>

using namespace std;

const int nx=1e5+5;

int n, m, L, D, a[nx], b[nx], qs[nx];

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n>>m>>L>>D;
    for (int i=1; i<=n; i++) cin>>a[i];
    for (int j=1; j<=m; j++) cin>>b[j];
    int l=1, r=m+1;
    while (l<r)
    {
        int md=(l+r)/2, can=1;
        for (int i=1; i<=n; i++) qs[i]=0;
        for (int i=1; i<=md; i++)
        {
            int cl=max(1, b[i]-L), cr=min(n, b[i]+L);
            qs[cl]+=D, qs[cr+1]-=D;
        }
        for (int i=1; i<=n; i++)
        {
            qs[i]+=qs[i-1];
            if (qs[i]<a[i]) can=0; 
        }
        if (can) r=md;
        else l=md+1;
    }
    if (l==m+1) cout<<-1;
    else cout<<l;
}