| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1038975 | Zicrus | Overtaking (IOI23_overtaking) | C++17 | 0 ms | 348 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "overtaking.h"
using namespace std;
typedef long long ll;
vector<ll> tCur, tNxt;
vector<int> s;
int x, m;
void init(int l, int n, vector<ll> t, vector<int> w, int x1, int m1, vector<int> s1) {
s = s1;
m = m1;
x = x1;
tCur = vector<ll>();
tNxt = vector<ll>();
vector<pair<ll, ll>> busses(n);
for (int i = 0; i < n; i++) {
busses[i] = {t[i], w[i]};
}
sort(busses.begin(), busses.end());
for (int i = 0; i < n; i++) {
ll curTime = busses[i].first;
ll idealNxt = curTime + busses[i].second * (s[1] - s[0]);
auto iter = lower_bound(tCur.begin(), tCur.end(), curTime);
ll id = iter - tCur.begin();
ll mxNxt = id > 0 ? tNxt[id-1] : 0;
ll nxt = max(idealNxt, mxNxt);
if (nxt > mxNxt) {
if (id < tCur.size() && curTime == tCur[id]) {
tNxt[id] = nxt;
}
else {
auto iter2 = upper_bound(tNxt.begin(), tNxt.end(), nxt);
tCur.erase(iter, tCur.begin() + (iter2 - tNxt.begin()));
tNxt.erase(tNxt.begin() + id, iter2);
tCur.insert(iter, curTime);
tNxt.insert(tNxt.begin() + id, nxt);
}
}
}
}
ll arrival_time(ll y) {
ll idealNxt = y + x * (s[1] - s[0]);
ll id = lower_bound(tCur.begin(), tCur.end(), y) - tCur.begin();
ll mxNxt = id > 0 ? tNxt[id-1] : 0;
return max(idealNxt, mxNxt);
}Compilation message (stderr)
| # | 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... | ||||
