Submission #1293929

#TimeUsernameProblemLanguageResultExecution timeMemory
1293929aren_dance장애물 (IOI25_obstacles)C++17
0 / 100
57 ms17608 KiB
#include <bits/stdc++.h> using namespace std; const int N=6e5+1; int mast[N]; int mash[N]; int n,m; int pref_maxv[N]; int pref_min[N]; int am[N]; int p[N]; int sz[N]; bool vis[N]; void init(){ for(int i=1;i<=m*n;++i){ p[i]=i; } } int par(int v){ if(p[v]==v){ return v; } p[v]=par(p[v]); return p[v]; } void merge(int u,int v){ if(sz[v]>sz[u]){ swap(u,v); } sz[u]+=sz[v]; p[v]=u; } void dsu(int u,int v){ u=par(u); v=par(v); if(u!=v){ merge(u,v); } } void initialize(vector<int> t, vector<int> h) { n=t.size(); m=h.size(); init(); for(int i=0;i<n;++i){ for(int j=0;j<m;++j){ if(t[i]>h[j]){ vis[i*n+j+1]=1; if(vis[i*n+j]==1 && j!=1){ dsu(i*n+j,i*n+j+1); } if(i==0){ continue; } if(vis[(i-1)*n+j]){ dsu((i-1)*n+j,i*n+j); } } } } } bool can_reach(int l, int r, int s, int d) { if(par(s+1)==par(d+1)){ return 1; } 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...