提出 #7122647


ソースコード 拡げる

Copy
#include <bits/stdc++.h>
#define ll long long
#define rep(i,n) for(ll (i)=0;(i)<(n);++(i))
using namespace std;

struct union_find_tree{
    vector<ll> par;
    union_find_tree(ll n){
        for(ll i=0;i<n;i++){
            par.push_back(i);
        }
    }

    ll find(ll a){
        if(par[a]==a)return a;
        return find(par[a]);
    }

    void unite(ll a,ll b){
        par[a]=b;
    }

    bool same(ll a,ll b){
        return find(a) == find(b);
    }

};

int main(){
    ll n,q;
    cin>>n>>q;
    union_find_tree uft(n);
    rep(i,q){
        ll p,a,b;
        cin>>p>>a>>b;
        if(p==0){
            uft.unite(a,b);
        }else{
            if(uft.same(a,b)){
                cout<<"Yes"<<endl;
            }else{
                cout<<"No"<<endl;
            }
        }
    }
}

提出情報

提出日時
問題 B - Union Find
ユーザ miotsukushi
言語 C++14 (GCC 5.4.1)
得点 0
コード長 849 Byte
結果
実行時間 5255 ms
メモリ 1780 KB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 100
結果
× 1
× 17
× 2
セット名 テストケース
Sample 00_sample_01.txt
All 00_sample_01.txt, subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt, subtask_01_18.txt
ケース名 結果 実行時間 メモリ
00_sample_01.txt 1 ms 256 KB
subtask_01_01.txt 271 ms 768 KB
subtask_01_02.txt 2 ms 1400 KB
subtask_01_03.txt 423 ms 1024 KB
subtask_01_04.txt 462 ms 1780 KB
subtask_01_05.txt 25 ms 256 KB
subtask_01_06.txt 26 ms 1400 KB
subtask_01_07.txt 426 ms 896 KB
subtask_01_08.txt 462 ms 1780 KB
subtask_01_09.txt 1 ms 256 KB
subtask_01_10.txt 2 ms 1400 KB
subtask_01_11.txt 420 ms 896 KB
subtask_01_12.txt 471 ms 1780 KB
subtask_01_13.txt 358 ms 768 KB
subtask_01_14.txt 3 ms 1400 KB
subtask_01_15.txt 427 ms 896 KB
subtask_01_16.txt 462 ms 1780 KB
subtask_01_17.txt 5255 ms 1524 KB
subtask_01_18.txt 5255 ms 1524 KB