# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
725799 | tengiz05 | Abracadabra (CEOI22_abracadabra) | C++17 | 1964 ms | 50272 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>
using i64 = long long;
constexpr int N = 200000;
constexpr int B = 300;
struct DataStructure {
int n;
std::vector<int> a;
std::vector<int> nxt;
std::vector<std::pair<int, int>> blocks;
std::deque<std::pair<int, int>> d[N / B + 2];
int siz[N / B + 2];
bool FirstTime;
DataStructure(std::vector<int> a, std::vector<int> nxt, std::vector<std::pair<int, int>> blocks) : n(a.size()), a(a), nxt(nxt), blocks(blocks) {
FirstTime = true;
memset(siz, 0, sizeof siz);
}
int at(int p) {
if (FirstTime) {
return a[p];
}
int cursiz = 0;
for (int cur = 0; ; cur++) {
if (cursiz + siz[cur] > p) {
int id = 0;
for (auto [l, r] : d[cur]) {
cursiz += r - l;
if (cursiz > p) {
# | 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... |