제출 #1252529

#제출 시각아이디문제언어결과실행 시간메모리
1252529NekoRolly장애물 (IOI25_obstacles)C++20
23 / 100
64 ms12104 KiB
#include "obstacles.h" #include<bits/stdc++.h> using namespace std; const int N = 6e5+4; struct Dsu{ int t[N]; void build(int n){ for (int i=0; i<n; i++) t[i] = i; } int find(int x){ if (x == t[x]) return x; return t[x] = find(t[x]); } void join(int a,int b){ t[find(a)] = find(b); } } dsu; int n,m; void initialize(vector<int> T,vector<int> H){ n = T.size(), m = H.size(); dsu.build(n*m); for (int i=0; i<n; i++) for (int j=0; j<m; j++){ if (T[i] <= H[j]) continue; if (i+1<n && T[i+1] > H[j]) dsu.join(i*m+j, i*m+m+j); if (j+1<m && T[i] > H[j+1]) dsu.join(i*m+j, i*m+j+1); } } bool can_reach(int L, int R, int S, int D) { return dsu.find(S) == dsu.find(D); }
#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...