제출 #1339295

#제출 시각아이디문제언어결과실행 시간메모리
1339295khanhphucscratch장애물 (IOI25_obstacles)C++20
24 / 100
166 ms24728 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 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...
#Verdict Execution timeMemoryGrader output
Fetching results...