| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1339295 | khanhphucscratch | Obstacles for a Llama (IOI25_obstacles) | C++20 | 166 ms | 24728 KiB |
#include "obstacles.h"
#include<bits/stdc++.h>
using namespace std;
struct SparseTable
{
int sparse[200005][20];
void init(vector<int> a)
{
int n = a.size();
for(int i = 0; i < n; i++) sparse[i][0] = a[i];
for(int j = 1; j <= 18; j++){
for(int i = 0; i < n; i++){
sparse[i][j] = sparse[i][j-1];
int p = i + (1 << (j-1));
if(p < n) sparse[i][j] = max(sparse[i][j], sparse[p][j-1]);
}
}
}
int query(int l, int r)
{
int x = __lg(r-l+1);
return max(sparse[l][x], sparse[r-(1<<x)+1][x]);
}
};
vector<int> t, h;
SparseTable st;
void initialize(vector<int> T, vector<int> H) {
t = T; h = H;
st.init(h);
}
bool can_reach(int L, int R, int S, int D) {
//Subtask 2
if(S > D) swap(S, D);
if(t.back() > st.query(S, D)) return 1;
else return 0;
}
| # | 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... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
