Submission #1193609

#TimeUsernameProblemLanguageResultExecution timeMemory
1193609NAMINCollecting Stamps 3 (JOI20_ho_t3)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define endl "\n" int N,L; ll calc(vector<ll> X,vector<ll> revX,vector<ll> T,int l,int 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; for(int i=0;i<=N-r-1;i++){ if(trav+(revX[i]-pos) <= T[N-i-1]){ trav += X[i]-pos; pos = X[i]; take++; } } return take; } void solve(){ //ifstream cin("pairup.in"); //ofstream cout("pairup.out"); 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--){ ans = max(ans,max(calc(X,revX,T,l,r),calc(revX,X,T,l,r))); } } 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...