Submission #836752

#TimeUsernameProblemLanguageResultExecution timeMemory
836752ma_moutahidFountain Parks (IOI21_parks)C++17
0 / 100
1 ms340 KiB
#include "parks.h" #include<bits/stdc++.h> using namespace std; #define vi vector<int> #define vii vector<vi> #define pi pair<int,int> #define vp vector<pi> vi d; int mx; vi h; vi s; int parent(int x){ if(d[x]==x)return x; return d[x]=parent(d[x]); } void connect(int a, int b){ a=parent(a); b=parent(b); if(h[a]<h[b])swap(a,b); if(h[a]==h[b])h[a]++; s[a]+=s[b]; mx=max(s[a],mx); d[b]=a; } int construct_roads(std::vector<int> x, std::vector<int> y) { //bsmllah int n=x.size(); d.resize(n);for(int i=0;i<n;i++)d[i]=i; h.resize(n); vi u; vi v; vi a; vi b; map<pi,int>f; for(int i=0;i<n;i++){ f.insert(make_pair(pi(x[i],y[i]),i)); } for(int i=0;i<n;i++){ auto itr=f.find(pi(x[i]+2,y[i])); if(itr!=f.end()){ u.push_back(i); v.push_back(itr->second); a.push_back(x[i]+1); b.push_back(y[i]+1); connect(i,itr->second); } itr=f.find(pi(x[i],y[i]+2)); if(itr!=f.end()){ u.push_back(i); v.push_back(itr->second); a.push_back(x[i]+x[i]-3); b.push_back(y[i]+1); connect(i,itr->second); } } for(int i=0;i<n;i++){ if(parent(d[i])!=parent(d[0]))return 0; } build(u,v,a,b); return 1; }
#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...