Submission #2864718


Source Code Expand

// finish date: 2018/07/17
#include <bits/stdc++.h>

using namespace std;

#define FOR(i, a, b) for(int (i)=a;(i)<(b);(i)++)
#define rep(i, n)  FOR(i,0,n)
typedef long long ll;
typedef vector<int> vi;
typedef vector<vector<int>> vvi;
typedef vector<vector<vector<int>>> vvvi;
typedef vector<ll> vl;
typedef vector<vector<ll>> vvl;
typedef vector<double> vd;
typedef vector<vector<double>> vvd;
typedef vector<vector<vector<double>>> vvvd;
typedef vector<bool> vb;
typedef vector<vector<bool>> vvb;
typedef vector<string> vs;
typedef vector<char> vc;
typedef vector<vector<char>> vvc;
typedef pair<int, int> pii;
typedef pair<ll, int> pli;
typedef pair<ll, pair<int, int>> plii;
const int bigmod = 1000000007;
const int INF = 1050000000;
const long long INFll = 100000000000000000;

//dijkstra(開始ノード、ノード数、edge[頂点名][距離、行先の頂点])
vi dijkstra(int s, int V, vector<vector<pii>> edge) {
    vi dist(V, INF); //INFの値がこれでいいか確認するべき
    vb used(V, false);
    priority_queue<pii, vector<pii>, greater<pii>> pq;
    pq.push(pii(0, s));
    while (!pq.empty()) {
        int d, t;
        tie(d, t) = pq.top();
        pq.pop();
        if (used[t]) continue;
        used[t] = true;
        dist[t] = d;
        for (pii e:edge[t]) {
            if (dist[e.second] < d + e.first) continue;
            pq.push(pii(d + e.first, e.second));
        }
    }
    return dist;
}

int main() {
    int N, M;
    cin >> N >> M;
    vector<vector<pii>> edge(N + M);
    rep(i, N) {
        int K;
        cin >> K;
        rep(j, K) {
            int L;
            cin >> L;
            L--;
            edge[i].push_back(pii(1, N + L));
            edge[N + L].push_back(pii(1, i));
        }
    }
    vi dist = dijkstra(0, N+M, edge);
    rep(i, N) {
        if(dist[i] == INF){
            cout<<"NO"<<endl;
            return 0;
        }
    }
    cout<<"YES"<<endl;

    return 0;
}

Submission Info

Submission Time
Task C - Interpretation
User TASSAN
Language C++14 (GCC 5.4.1)
Score 400
Code Size 2021 Byte
Status AC
Exec Time 77 ms
Memory 19828 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 2 ms 384 KB
01-03.txt AC 2 ms 512 KB
01-04.txt AC 2 ms 384 KB
01-05.txt AC 2 ms 384 KB
01-06.txt AC 2 ms 384 KB
01-07.txt AC 2 ms 384 KB
01-08.txt AC 2 ms 384 KB
01-09.txt AC 2 ms 384 KB
01-10.txt AC 2 ms 384 KB
02-01.txt AC 63 ms 12412 KB
02-02.txt AC 67 ms 13824 KB
02-03.txt AC 63 ms 9216 KB
02-04.txt AC 77 ms 14976 KB
02-05.txt AC 72 ms 12416 KB
02-06.txt AC 74 ms 14976 KB
02-07.txt AC 70 ms 13184 KB
02-08.txt AC 51 ms 13936 KB
02-09.txt AC 71 ms 19828 KB
02-10.txt AC 61 ms 14324 KB
02-11.txt AC 61 ms 14324 KB
02-12.txt AC 62 ms 13056 KB
02-13.txt AC 62 ms 13184 KB
sample-01.txt AC 1 ms 256 KB
sample-02.txt AC 1 ms 256 KB