제출 #1193606

#제출 시각아이디문제언어결과실행 시간메모리
1193606NAMINCollecting Stamps 3 (JOI20_ho_t3)C++20
0 / 100
0 ms324 KiB
#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<int> 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<int> revX = X;
	reverse(revX.begin(),revX.end());
	for(int i=0;i<N;i++){
		//cout << revX[i] << ' ';
		revX[i] = L-revX[i];
	}
	//cout << endl;
	
	int ans = 0;
	for(int l=-1;l<N;l++){
		for(int r=N;r>l;r--){
			ll trav = 0;
			int pos = 0;
			int 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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...