Submission #997580

#TimeUsernameProblemLanguageResultExecution timeMemory
997580irmuunCollecting Stamps 3 (JOI20_ho_t3)C++17
100 / 100
56 ms134320 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() //try template<class T> T &chmax(T &a,const T &b){ return a = max(a,b); } template<class T> T &chmin(T &a,const T &b){ return a = min(a,b); } ll dpL[205][205][205]; ll dpR[205][205][205]; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll n,L; cin>>n>>L; ll x[n+5],t[n+5]; x[0]=0; x[n+1]=L; for(ll i=1;i<=n;i++){ cin>>x[i]; } for(ll i=1;i<=n;i++){ cin>>t[i]; } for(ll i=0;i<=n+1;i++){ for(ll j=0;j<=n+1;j++){ for(ll k=0;k<=n;k++){ dpL[i][j][k]=1e18; dpR[i][j][k]=1e18; } } } dpL[0][n+1][0]=0; dpR[0][n+1][0]=0; for(ll i=0;i<=n;i++){ for(ll j=n+1;j>=i+2;j--){ for(ll k=0;k<=n;k++){ ll tm=min(dpL[i][j][k]+x[i+1]-x[i],dpR[i][j][k]+L-(x[j]-x[i+1])); chmin(dpL[i+1][j][k+(tm<=t[i+1])],tm); tm=min(dpR[i][j][k]+x[j]-x[j-1],dpL[i][j][k]+L-(x[j-1]-x[i])); chmin(dpR[i][j-1][k+(tm<=t[j-1])],tm); } } } ll ans=0; for(ll i=0;i<=n+1;i++){ for(ll j=0;j<=n+1;j++){ for(ll k=0;k<=n;k++){ if(dpL[i][j][k]!=1e18){ ans=max(ans,k); } if(dpR[i][j][k]!=1e18){ ans=max(ans,k); } } } } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...