Submission #7499017


Source Code Expand

#include<bits/stdc++.h>
#define rep(i,n,m) for(int i = (n); i <(m); i++)
#define rrep(i,n,m) for(int i = (n) - 1; i >=(m); i--)
using namespace std;
using ll = long long;

struct edge{int to, from;};

struct UnionFind
{
    vector<int> rank;
    vector<int> parent;
    const int n;
    UnionFind(int _n) :n(_n)
    {
        rank.assign(n, 1);
        parent.assign(n, -1);
    }

    int find(int node)
    {
        assert (node < n);

        if (parent[node] == -1)
            return node;
        else
            return parent[node] = find(parent[node]);
    }

    void unite(int i, int j)
    {
        i = find(i);
        j = find(j);

        if (i == j)
            return;

        if (rank[i] == rank[j])
        {
            parent[j] = i;
            rank[i]++;
        }
        else
        {
            if (rank[i] > rank[j]) swap(i, j);
            parent[j] = i;
        }
    }

    bool is_same(int i, int j)
    {
        return find(i) == find(j);
    }
};

int main()
{
    int n, m;
    cin >> n >> m;

    vector<edge> E;
    rep(i, 0, n)
    {
        int k;
        cin >> k;
        rep(j, 0, k)
        {
            int lang;
            cin >> lang;
            --lang;
            edge ee = {i, n+lang};
            E.push_back(ee);
        }
    }

    UnionFind uf(n+m);
    for (edge e: E)
        uf.unite(e.to, e.from);

    bool ans = true;
    rep(i, 0, n)
        ans &= uf.is_same(0, i);

    if (ans)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
    return 0;
}

Submission Info

Submission Time
Task C - Interpretation
User Kiona0405
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1623 Byte
Status AC
Exec Time 51 ms
Memory 3700 KB

Judge Result

Set Name sample dataset1 dataset2
Score / Max Score 0 / 0 200 / 200 200 / 200
Status
AC × 2
AC × 12
AC × 27
Set Name Test Cases
sample sample-01.txt, sample-02.txt
dataset1 sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt
dataset2 sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, sample-01.txt, sample-02.txt
Case Name Status Exec Time Memory
01-01.txt AC 1 ms 256 KB
01-02.txt AC 1 ms 256 KB
01-03.txt AC 2 ms 256 KB
01-04.txt AC 1 ms 256 KB
01-05.txt AC 2 ms 256 KB
01-06.txt AC 1 ms 256 KB
01-07.txt AC 1 ms 256 KB
01-08.txt AC 1 ms 256 KB
01-09.txt AC 1 ms 256 KB
01-10.txt AC 2 ms 256 KB
02-01.txt AC 34 ms 1908 KB
02-02.txt AC 43 ms 1780 KB
02-03.txt AC 34 ms 1524 KB
02-04.txt AC 43 ms 2420 KB
02-05.txt AC 44 ms 1780 KB
02-06.txt AC 43 ms 2420 KB
02-07.txt AC 44 ms 1780 KB
02-08.txt AC 35 ms 2292 KB
02-09.txt AC 51 ms 3700 KB
02-10.txt AC 39 ms 2292 KB
02-11.txt AC 38 ms 2292 KB
02-12.txt AC 38 ms 1780 KB
02-13.txt AC 39 ms 1780 KB
sample-01.txt AC 1 ms 256 KB
sample-02.txt AC 1 ms 256 KB