제출 #1233852

#제출 시각아이디문제언어결과실행 시간메모리
1233852mariza추월 (IOI23_overtaking)C++20
39 / 100
3594 ms15944 KiB
#include "overtaking.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const ll N=1001; ll n, t[N], w[N], m, s[N]; ll z[N]; bool comp(ll a, ll b){ return z[a]<z[b]; } void init(int L, int N, std::vector<long long> T, std::vector<int> W, int X, int M, std::vector<int> S){ n=N; for(ll i=0; i<n; i++){ t[i]=T[i]; w[i]=W[i]; } w[n]=X; m=M; for(ll i=0; i<m; i++){ s[i]=S[i]; } return; } long long arrival_time(long long Y){ t[n]=Y; ll x[n+1][m], e[n+1][m], idx[n+1]; for(ll i=0; i<=n; i++){ x[i][0]=t[i]; idx[i]=i; } for(ll j=1; j<m; j++){ for(ll i=0; i<=n; i++){ e[i][j]=x[i][j-1]+w[i]*(s[j]-s[j-1]); z[i]=x[i][j-1]; } sort(idx,idx+n+1,comp); ll c=0, ans=0; for(ll i=0; i<=n; i++){ if(i>0 && x[idx[i]][j-1]>x[idx[i-1]][j-1]) ans=max(ans,c); x[idx[i]][j]=max(e[idx[i]][j],ans); c=max(c,e[idx[i]][j]); } } return x[n][m-1]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...