Submission #1293917

#TimeUsernameProblemLanguageResultExecution timeMemory
1293917aren_danceObstacles for a Llama (IOI25_obstacles)C++17
0 / 100
1355 ms2162688 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();
    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){
                    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...