제출 #881918

#제출 시각아이디문제언어결과실행 시간메모리
881918irmuunOvertaking (IOI23_overtaking)C++17
0 / 100
1 ms348 KiB
#include<bits/stdc++.h>
#include "overtaking.h"
 
using namespace std;
 
#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()

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

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

ll arrival_time(ll Y){
    if(n==1){
        ll e[2],rl[2];
        e[0]=t[0];
        e[1]=Y;
        for(ll i=1;i<m;i++){
            rl[0]=e[0]+1ll*(s[i]-s[i-1])*w[0];
            rl[1]=e[1]+1ll*(s[i]-s[i-1])*x;
            if(e[0]<e[1]){
                rl[1]=max(rl[1],e[0]);
            }
            if(e[0]>e[1]){
                rl[0]=max(rl[0],e[1]);
            }
            e[0]=rl[0];
            e[1]=rl[1];
        }
        return e[1];
    }
    if(m==2){
        ll ans=Y+l*x;
        for(ll i=0;i<n;i++){
            if(t[i]<Y){
                ll exp=t[i]+l*w[i];
                ans=max(ans,exp);
            }
        }
        return ans;
    }
    return 0ll;
}
#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...