Submission #1205000

#TimeUsernameProblemLanguageResultExecution timeMemory
1205000PagodePaivaOvertaking (IOI23_overtaking)C++20
0 / 100
0 ms584 KiB
#include "overtaking.h"
#include<bits/stdc++.h>
#define ll long long

using namespace std;

int l, n;
vector <ll> t;
vector <int> w;
int x, m;
vector <int> s;

void init(int L, int N, std::vector<long long> T, std::vector<int> W, int X, int M, std::vector<int> S){
    l = L;
    n = N;
    t = T;
    w = W;
    x = X;
    m = M;
    s = S;
    return;
}

const int N = 110;
ll tt[N][N];
ll e[N][N];

long long arrival_time(long long Y){
    t.push_back(Y);
    w.push_back(x);
    for(int i = 0;i <= n;i++){
        tt[i][0] = t[i];
    }
    for(int j = 1;j < m;j++){
        vector <array <ll, 3>> v;
        for(int i = 0;i <= n;i++){
            e[i][j] = tt[i][j-1] + (s[j]-s[j-1])*w[i];
            v.push_back({tt[i][j-1], -e[i][j], i});
        }
        sort(v.begin(), v.end());
        ll res = 0;
        for(auto [tmp, exp, i] : v){
            res = max(res, -exp);
            tt[i][j] = res;
        }
    }
    ll ans = tt[n][m-1];
    t.pop_back();
    w.pop_back();
    return 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...