Submission #1226832

#TimeUsernameProblemLanguageResultExecution timeMemory
1226832mariaclaraOvertaking (IOI23_overtaking)C++20
0 / 100
1 ms328 KiB
#include "overtaking.h"
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<ll> vl;
#define all(x) x.begin(), x.end()
#define sz(x) (int)x.size()
#define mk make_pair 
#define pb push_back 
#define fr first 
#define sc second 

vector<vi> t;
vi w, s;

void init(int L, int N, vl T, vi W, int X, int M, vi S) {
    t.resize(M, vi(N+1));
    w = W;
    w.pb(X);
    s = S;

    for(int i = 0; i < N; i++)
        t[0][i] = T[i];

    return;
}

ll arrival_time(ll Y) {
    int m = sz(s), n = sz(w)-1;
    t[0][n] = Y;

    for(int M = 1; M < m; M++) {
        for(int i = 0; i <= n; i++)
            t[M][i] = t[M-1][i] + (s[M] - s[M-1]) * w[i];
            
        for(int i = 0; i <= n; i++) {
            for(int j = 0; j <= n; j++)
                if(t[M-1][j] < t[M-1][i]) t[M][i] = max(t[M][i], t[M][j]);
        }
    }

    return t[m-1][n];
}
#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...