#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define endl "\n"
void solve(){
//ifstream cin("pairup.in");
//ofstream cout("pairup.out");
int N,L;
cin >> N >> L;
vector<ll> X(N),T(N);
for(int i=0;i<N;i++)
cin >> X[i];
for(int i=0;i<N;i++)
cin >> T[i];
vector<ll> revX = X;
reverse(revX.begin(),revX.end());
for(int i=0;i<N;i++){
//cout << revX[i] << ' ';
revX[i] = L-revX[i];
}
//cout << endl;
ll ans = 0;
for(int l=-1;l<N;l++){
for(int r=N;r>l;r--){
ll trav = 0;
ll pos = 0;
ll take = 0;
for(int i=0;i<=l;i++){
if(trav+(X[i]-pos) <= T[i]){
trav += X[i]-pos;
pos = X[i];
take++;
}
}
trav += pos;
pos = 0;
if(l == -1 && r == 0)
for(int i=0;i<N-r;i++){
if(trav+(revX[i]-pos) <= T[N-i-1]){
trav += X[i]-pos;
pos = X[i];
take++;
}
}
ans = max(ans,take);
}
}
cout << ans << endl;
}
int main(){
int t=1;
//cin >> t;
while(t--){
solve();
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |