제출 #899859

#제출 시각아이디문제언어결과실행 시간메모리
899859Ludissey추월 (IOI23_overtaking)C++17
39 / 100
3524 ms632 KiB
#include "overtaking.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
int l,n,x,m;
vector<int> t,w,s;

void init(signed L, signed N, std::vector<long long> T, std::vector<signed> W, signed X, signed M, std::vector<signed> S)
{
    l=L;
    n=N;
    x=X;
    m=M;
    t.assign(T.begin(),T.end());
    s.assign(S.begin(),S.end());
    w.assign(W.begin(),W.end());
    return;
}
long long arrival_time(long long Y) 
{
    vector<int> allT(n+1);
    for (int i = 0; i < n; i++) allT[i]=t[i];
    allT[n]=Y;
    for (int i = 1; i < m; i++) // check toute les station
    {
        int dist=s[i]-s[i-1];
        vector<int> allE(n+1);
        for (int j = 0; j < n; j++) {
            allE[j]=allT[j]+(w[j]*dist);
            //cerr << j << " " << allE[j] << "\n";
        }
        allE[n]=allT[n]+(x*dist);
        //cerr << n << " " << allE[n] << "\n";
        for (int j = 0; j <= n; j++) // check toute les bus
        {
            for (int k = 0; k <= n; k++) // check toute les bus
            {
                if(j==k) continue;
                if(allT[k]<allT[j]&&allE[j]<allE[k]){
                    allE[j]=allE[k];
                }
            }
        }
        for (int k = 0; k <= n; k++) {
            allT[k]=allE[k];
            //cerr << k << " " << allT[k] << "\n";
        }
        //cerr << "\n";
    }
    return allT[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...