Submission
Status:
(PPPPPPPPPPPPP)(PPPTSSS)(SSSSSSSSS)
Subtask/Task Score:
{30/30}{0/30}{0/40}
Score: 30
User: Trees
Problemset: Red Zone
Language: cpp
Time: 1.093 second
Submitted On: 2026-03-06 09:04:11
#include<bits/stdc++.h>
using namespace std;
int n,m,L,d;
vector<int> a;
vector<int> b;
vector<int> c;
bool check(int total,int now)
{
int bmin = max(1,total-L);
int bmax = min(n+1,total+L+1);
c[bmin] += d;
c[bmax] -= d;
int curr = 0;
for(int i=1;i<=n;++i){
curr += c[i];
if(curr < a[i])
return false;
}
return true;
}
int main()
{
cin >> n >> m >> L >> d;
a.assign(n+2,0);
b.resize(m+1);
c.assign(n+2,0);
for(int i=1;i<=n;++i)
cin >> a[i];
for(int i=1;i<=m;++i)
cin >> b[i];
for(int i=1;i<=m;++i){
if(check(b[i],i)){
cout << i;
return 0;
}
}
cout << -1;
return 0;
}