Submission #1234583

#TimeUsernameProblemLanguageResultExecution timeMemory
1234583ericl23302추월 (IOI23_overtaking)C++20
0 / 100
0 ms328 KiB
#include "overtaking.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; vector<ll> starts, speeds, stations; vector<vector<ll>> expected; ll length, n, m, speed; void init(int L, int N, std::vector<long long> T, std::vector<int> W, int X, int M, std::vector<int> S) { length = L; n = N; m = M; starts = T; for (auto &i : W) speeds.push_back(i); for (auto &i : S) stations.push_back(i); speed = X; expected.push_back({}); expected[0].resize(m, 0); expected[0][0] = starts[0]; for (int i = 1; i < m; ++i) { expected[0][i] = expected[0][i - 1] + (stations[i] - stations[i - 1]) * speeds[0]; } } long long arrival_time(long long Y) { if (speed >= speeds[0] || Y <= starts[0]) return (speed * length); ll cur = Y; for (int i = 1; i < m; ++i) { cur += (stations[i] - stations[i - 1]) * speed; if (cur <= expected[0][i]) { return (expected[0][i] + speed * (stations[m - 1] - stations[i])); } } return cur; }
#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...