Submission #423371


Source Code Expand

#include <iostream>
#include <vector>

using namespace std;

class UF
{
private:
    int m_size;
    int m_query_num;
    vector<int> m_data;

public:
        UF(int s, int q) : m_size(s), m_query_num(q) {}
    void init();
    void unit(const int a, const int b);
    int find(const int a);
    void checkSame(const int a, const int b);
};


void UF::init(){
    m_data.resize(m_size);

    for (int i = 0; i < m_size; ++i) {
        m_data.at(i) = i;
    }
}


// rootを探す
int UF::find(const int a) {
    if (m_data.at(a) == a) return m_data.at(a);

    return this->find(m_data.at(a));
}


void UF::unit(const int a, const int b) {
    int root_a = find(a);
    int root_b = find(b);

    if (root_a == root_b) return;

    m_data.at(root_a) = root_b;
}



void UF::checkSame(const int a, const int b) {
    int root_a = this->find(m_data.at(a));
    int root_b = this->find(m_data.at(b));

    if (root_a == root_b) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }
}


int main()
{
    int n, q;

    cin >> n >> q;

    UF uf(n, q);
    uf.init();

    for (int i = 0; i < q; ++i) {
        int q, a, b;
        cin >> q >> a >> b;
        
        switch (q) {
            case 0:
                uf.unit(a, b);
                break;
            case 1:
                uf.checkSame(a, b);
                break;
            default:
                break;
        }
    }
    return 0;
}

Submission Info

Submission Time
Task B - Union Find
User ryoyuki
Language C++11 (GCC 4.9.2)
Score 0
Code Size 1521 Byte
Status TLE
Exec Time 5034 ms
Memory 1312 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 1
AC × 18
TLE × 1
Set Name Test Cases
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
Case Name Status Exec Time Memory
00_sample_01.txt AC 26 ms 796 KB
subtask_01_01.txt AC 506 ms 808 KB
subtask_01_02.txt AC 26 ms 1184 KB
subtask_01_03.txt AC 727 ms 800 KB
subtask_01_04.txt AC 842 ms 1308 KB
subtask_01_05.txt AC 77 ms 800 KB
subtask_01_06.txt AC 72 ms 1184 KB
subtask_01_07.txt AC 827 ms 804 KB
subtask_01_08.txt AC 990 ms 1188 KB
subtask_01_09.txt AC 27 ms 796 KB
subtask_01_10.txt AC 27 ms 1192 KB
subtask_01_11.txt AC 743 ms 928 KB
subtask_01_12.txt AC 950 ms 1180 KB
subtask_01_13.txt AC 764 ms 924 KB
subtask_01_14.txt AC 29 ms 1300 KB
subtask_01_15.txt AC 884 ms 840 KB
subtask_01_16.txt AC 940 ms 1312 KB
subtask_01_17.txt TLE 5034 ms 1264 KB
subtask_01_18.txt AC 634 ms 1196 KB