Submission #1832310


Source Code Expand

#include <bits/stdc++.h>

#define fr first
#define sc second
#define pb push_back
#define mk make_pair

using namespace std;
const int N = 1e5 + 7;

int k, a;

vector<pair<int, int>>v;
pair<bool, int>u[N];
vector<int>g[N];
bool used[N], fl;
bool us[N];

void dfs(int vv)
{
    us[v[vv].sc] = 1;
    used[vv] = 1;
//    cout << v[vv].fr << " " << vv << endl;
    int l = vv;
    while (v[l].sc == v[vv].sc)
    {
        l--;
    }
    l++;
    int pos = l;

    for (int i = 0; i < g[vv].size(); i++)
    {
        int to = g[vv][i];

        if (!used[to])
           dfs(to);
    }
    if (v[vv].sc != 1){

        for (int j = pos; j < v.size(); j++)
        {
            if (v[j].sc != v[vv].sc)
                return;
            if (!used[j] && g[j].size() > 0)
                dfs(j);
        }

    }

}
main()
{
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        scanf("%d",&k);
        for (int j = 1; j <= k; j++)
        {
            scanf("%d",&a);
            v.pb(mk(a, i));
        }
    }

    for (int i = 0; i < v.size(); i++)
    {
        if (u[v[i].fr].fr && v[i].sc != v[u[v[i].fr].sc].sc)
        {
            g[u[v[i].fr].sc].pb(i);
            g[i].pb(u[v[i].fr].sc);
        }
        u[v[i].fr] = (mk(1, i));
    }

    for(int i = 0; i < v.size(); i++)
    {
        if (v[i].sc != 1)
        {
            break;
        }
        if (g[i].size() > 0 && !used[i]){
            dfs(i);
        }
        else {
            us[1] = 1;
            used[i] = 1;
        }
        if (i == 1)
        {
            for (int j = 1; j <= n; j++)
            {
                if (!us[j])fl = 1;
            }
            if (!fl)
            {
                cout << "YES";
                return 0;
            }
        }
    }

    for (int i = 1; i <= n; i++)
    {
        if (!us[i])
        {
            cout << "NO";
            return 0;
        }
    }
    cout << "YES";
}


Submission Info

Submission Time
Task C - Interpretation
User vjudge3
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1944 Byte
Status AC
Exec Time 44 ms
Memory 11380 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:58:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&k);
                       ^
./Main.cpp:61:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
             scanf("%d",&a);
                           ^

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 2 ms 2560 KB
01-02.txt AC 3 ms 2688 KB
01-03.txt AC 3 ms 2688 KB
01-04.txt AC 3 ms 2688 KB
01-05.txt AC 3 ms 2688 KB
01-06.txt AC 3 ms 2688 KB
01-07.txt AC 3 ms 2688 KB
01-08.txt AC 3 ms 2688 KB
01-09.txt AC 3 ms 2688 KB
01-10.txt AC 3 ms 2688 KB
02-01.txt AC 35 ms 8948 KB
02-02.txt AC 39 ms 8820 KB
02-03.txt AC 39 ms 10228 KB
02-04.txt AC 33 ms 7028 KB
02-05.txt AC 44 ms 8820 KB
02-06.txt AC 33 ms 7028 KB
02-07.txt AC 38 ms 6772 KB
02-08.txt AC 29 ms 9076 KB
02-09.txt AC 33 ms 11380 KB
02-10.txt AC 23 ms 7796 KB
02-11.txt AC 23 ms 7796 KB
02-12.txt AC 23 ms 6004 KB
02-13.txt AC 23 ms 6004 KB
sample-01.txt AC 2 ms 2560 KB
sample-02.txt AC 2 ms 2560 KB