# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1138141 | mnbvcxz123 | Stranded Far From Home (BOI22_island) | C++20 | 101 ms | 36520 KiB |
#include<bits/stdc++.h>
#define int long long
using namespace std;
vector<pair<int,int>>adj[200005];
vector<int>info[200005];
int sz[200005];
int p[200005];
int fp(int a){return p[a]==a?a:p[a]=fp(p[a]);}
int un(int a,int b,int k){
a=fp(a),b=fp(b);
if(info[a].size()>info[b].size())swap(a,b);
if(sz[a]<k)info[a].clear();
if(sz[b]<k)info[b].clear();
for(auto x:info[a])info[b].push_back(x);
sz[b]+=sz[a];
return p[a]=b;
}
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n,m;cin>>n>>m;
for(int i=1;i<=n;i++)cin>>sz[i];
vector<pair<int,pair<int,int>>>edge;
for(int i=1;i<=m;i++){
int a,b;cin>>a>>b;
edge.push_back({max(sz[a],sz[b]),{a,b}});
}
sort(edge.begin(),edge.end());
for(int i=1;i<=n;i++)p[i]=i,info[i].push_back(i);
int rt=1;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |