#include <bits/stdc++.h>
#include "overtaking.h"
using namespace std;
using ll = long long;
const int mxN = 1e3+10;
int l, n;vector<ll> t; vector<int> w; int x; int m; vector<int> 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 calculate_arrival_time(ll Y) {
set<array<ll, 3>> buses;
for(int i = 0; i < n; i++) {
buses.insert({t[i], w[i], i});
}
buses.insert({Y, x, n});
for(int i = 1; i < m; i++) {
set<array<ll, 3>> nxt;
for(auto [t, w, idx] : buses) {
ll f = t + w * (s[i] - s[i-1]);
ll s;
if(nxt.empty()) s = 0;
else {
auto it = prev(nxt.end());
s = (*it)[0];
}
ll now = max(f, s);
nxt.insert({now, w, idx});
if(i == m-1 && idx == n) return now;
}
swap(buses, nxt);
}
}
ll arrival_time(ll Y) {
return calculate_arrival_time(Y);
}
/*
int main()
{
init(6, 4, {20, 10, 40, 0}, {5, 20, 20, 30}, 10, 4, {0, 1, 3, 6});
cout << arrival_time(50);
}*/
컴파일 시 표준 에러 (stderr) 메시지
overtaking.cpp: In function 'll calculate_arrival_time(ll)':
overtaking.cpp:35:1: warning: control reaches end of non-void function [-Wreturn-type]
35 | }
| ^
# | 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... |