This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "overtaking.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int nx=1e3+5;
ll n, m, e[nx][nx], t[nx][nx];
vector<ll> l, w, s;
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, m=M;
l.resize(N+1);
w.resize(N+1);
s.resize(M);
for (int i=0; i<n; i++) l[i]=T[i], w[i]=W[i];
for (int i=0; i<m; i++) s[i]=S[i];
w[n]=X;
}
long long arrival_time(long long Y)
{
l[n]=Y;
for (int i=0; i<=n; i++) t[0][i]=l[i];
for (int i=1; i<m; i++)
{
vector<pair<ll, pair<ll, ll>>> v;
for (int j=0; j<=n; j++) e[i][j]=t[i-1][j]+(s[i]-s[i-1])*w[j], v.push_back({t[i-1][j], {e[i][j], j}});
sort(v.begin(), v.end());
ll mx=0;
for (int j=0; j<=n; j++) mx=max(mx, v[j].second.first), t[i][v[j].second.second]=mx;
//for (int j=0; j<=n; j++) cout<<"debug "<<i<<' '<<j<<' '<<t[i][j]<<'\n';
}
return t[m-1][n];
}
| # | 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... |