Submission #1251609

#TimeUsernameProblemLanguageResultExecution timeMemory
1251609fv3Obstacles for a Llama (IOI25_obstacles)C++20
24 / 100
79 ms8264 KiB
#include "obstacles.h" #include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() struct union_find { vector<int> sz, lft; union_find(int n) { sz = lft = vector<int>(n, 1); iota(all(lft), 0); } int find(int i) { if (lft[i] == i) return i; return lft[i] = find(lft[i]); } void merge(int a, int b) { a = find(a); b = find(b); if (a == b) return; if (sz[a] < sz[b]) { swap(a, b); } lft[b] = a; sz[a] += sz[b]; } } dsu(0); void initialize(vector<int> T, vector<int> H) { const int N = int(T.size()); const int M = int(H.size()); dsu = union_find(M); for (int j = 0; j < M; j++) { if (T.back() <= H[j]) continue; if (j + 1 < M && T.back() > H[j + 1]) { dsu.merge(j, j + 1); } } } bool can_reach(int L, int R, int S, int D) { return dsu.find(S) == dsu.find(D); } //#include "grader.cpp"
#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...