# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1162473 | tw20000807 | Road Closures (APIO21_roads) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
#define ll long long
#define all(v) v.begin(), v.end()
#define SZ(x) (int)x.size()
#define pii pair<int, int>
#define X first
#define Y second
using namespace std;
struct TABLE{
int n;
int g;
vector< vector< int > > dp;
TABLE(){}
TABLE(vector< int > &v){
n = SZ(v);
g = __lg(n) + 1;
dp.resize(g, vector< int >(n));
for(int i = 0; i < n; ++i){
dp[0][i] = v[i];
}
for(int j = 1; j < g; ++j){
for(int i = 0; i + (1 << j) - 1 < n; ++i){
dp[j][i] = min(dp[j - 1][i], dp[j - 1][i + (1 << (j - 1))]);
}
}
}
int query(int l, int r){