이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
swap(t,T);
s.assign(S.begin(),S.end());
w.assign(W.begin(),W.end());
return;
}
long long arrival_time(long long Y)
{
if(x>=w[0]||s[0]>=Y) return x*s[m-1] + Y;
int eqPos=upper_bound(s.begin(),s.end(), w[0]*((Y-s[0])/(w[0]-x)))-s.begin();
for (int i = 1; i < m; i++)
{
if(x*s[i]+Y<=t[0]+w[0]*s[i]) {eqPos=i; break;}
}
//cerr << eqPos << "\n";
if(eqPos>=m) return x*s[m-1] + Y;
return (w[0]*s[eqPos]+t[0])+(s[m-1]-s[eqPos])*x;
}
# | 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... |