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;
}