# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
673261 | Cyanmond | Discharging (NOI20_discharging) | C++17 | 931 ms | 248720 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 i64 inf = 1ll << 60;
class SparseTable {
int n;
std::vector<int> log_table;
std::vector<std::vector<i64>> data;
public:
SparseTable(std::vector<i64> vec) : n(vec.size()) {
log_table.assign(n + 1, 0);
for (int i = 1; i <= n; ++i) {
log_table[i] = std::max(log_table[i], log_table[i - 1]);
if (2 * i <= n) {
log_table[2 * i] = log_table[i] + 1;
}
}
data.resize(log_table[n] + 1);
data[0] = vec;
for (int d = 1; d <= log_table[n]; ++d) {
const int w = 1 << d;
data[d].resize(n - w + 1);
for (int i = 0; i + w <= n; ++i) {
data[d][i] = std::max(data[d - 1][i], data[d - 1][i + w / 2]);
}
}
}
# | 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... |