제출 #1352582

#제출 시각아이디문제언어결과실행 시간메모리
1352582marizaBoardgames (CEOI25_boardgames)C++20
12 / 100
12 ms3876 KiB
#include "boardgames.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll N=1e5;

struct DSU{
    ll p[N], c;

    void init(ll n){
        for(ll i=0; i<n; i++){
            p[i]=i;
        }
        c=n;
    }

    ll find(ll u){
        if(p[u]==u) return u;
        else return p[u]=find(p[u]);
    }

    void merge(ll u, ll v){
        u=find(u);
        v=find(v);
        if(u!=v){
            p[u]=v;
            c--;
        }
    }
};

vector<int> partition_players(int n, int m, vector<int> x, vector<int> y){
    DSU dsu;
    dsu.init(n);
    for(ll i=0; i<m; i++){
        dsu.merge(x[i],y[i]);
    }

    vector<int> ans;
    ll c=0;
    for(ll i=0; i<n; i++){
        c++;
        if(i==n-1 || dsu.find(i)!=dsu.find(i+1)){
            ans.push_back(c);
            c=0;
        }
    }
    return ans;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...