#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 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |