Submission #992047


Source Code Expand

#include <algorithm>
#include <iostream>
#include <numeric>
#include <string>
#include <vector>
#include <utility>

class UnionFind {
  public:
    UnionFind(int n = 0) {
      init(n);
    }
    void init(int n) {
      p_.resize(n);
      std::iota(p_.begin(), p_.end(), 0);
    }
    int find(int x) {
      if (x == p_[x]) return x;
      return p_[x] = find(p_[x]);
    }
    void unite(int x, int y) {
      x = find(x);
      p_[x] = find(y);
    }
  private:
    std::vector<int> p_;
};

int main() {
  int n, m, k;
  std::vector<std::vector<int>> l, inv;
  std::cin >> n >> m;
  l.resize(n);
  inv.resize(m);
  for (int ni = 0; ni < n; ++ni) {
    std::cin >> k;
    l[ni].resize(k);
    for (int ki = 0; ki < k; ++ki) {
      std::cin >> l[ni][ki];
      inv[l[ni][ki] - 1].push_back(ni);
    }
  }
  UnionFind uf(n);
  for (int mi = 0; mi < m; ++mi) {
    if (not inv[mi].empty()) {
      for (std::size_t ii = 1; ii < inv[mi].size(); ++ii) {
        uf.unite(inv[mi][0], inv[mi][ii]);
      }
    }
  }
  for (int ni = 1; ni < n; ++ni) {
    if (uf.find(0) != uf.find(ni)) {
      std::cout << "NO" << std::endl;
      return 0;
    }
  }
  std::cout << "YES" << std::endl;
  return 0;
}

Submission Info

Submission Time
Task C - Interpretation
User saltcandy123
Language C++14 (Clang 3.8.0)
Score 400
Code Size 1257 Byte
Status AC
Exec Time 148 ms
Memory 12024 KB

Judge Result

Set Name sample dataset1 dataset2
Score / Max Score 0 / 0 200 / 200 200 / 200
Status
AC × 2
AC × 12
AC × 25
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
Case Name Status Exec Time Memory
01-01.txt AC 6 ms 888 KB
01-02.txt AC 3 ms 256 KB
01-03.txt AC 4 ms 384 KB
01-04.txt AC 4 ms 384 KB
01-05.txt AC 4 ms 384 KB
01-06.txt AC 4 ms 384 KB
01-07.txt AC 4 ms 256 KB
01-08.txt AC 4 ms 384 KB
01-09.txt AC 4 ms 384 KB
01-10.txt AC 4 ms 384 KB
02-01.txt AC 101 ms 5120 KB
02-02.txt AC 127 ms 6528 KB
02-03.txt AC 99 ms 3584 KB
02-04.txt AC 131 ms 7296 KB
02-05.txt AC 131 ms 5888 KB
02-06.txt AC 131 ms 7296 KB
02-07.txt AC 137 ms 6528 KB
02-08.txt AC 111 ms 8056 KB
02-09.txt AC 148 ms 12024 KB
02-10.txt AC 117 ms 7932 KB
02-11.txt AC 117 ms 7932 KB
02-12.txt AC 116 ms 6400 KB
02-13.txt AC 114 ms 6272 KB
sample-01.txt AC 3 ms 256 KB
sample-02.txt AC 3 ms 256 KB