제출 #246405

#제출 시각아이디문제언어결과실행 시간메모리
246405NONAMERonald (COCI17_ronald)C++14
120 / 120
48 ms608 KiB
#include  <bits/stdc++.h>
#define dbg(x) cerr << #x << " = " << x << "\n"
#define fast_io ios_base::sync_with_stdio(0); cin.tie(0); cout.tie()
using namespace std;
using ll = long long;
using ld = long double;

const int N = 1e4;

int pr[N], cnt[N], e[N];

int f(int x) { return (x == pr[x]) ? x : pr[x] = f(pr[x]); }

int main() {
    fast_io;

    int n, m;
    cin >> n >> m;

    for (int i = 0; i < n; ++i)
        pr[i] = i, cnt[i] = 1, e[i] = 0;

    for (int i = 0; i < m; ++i) {
        int v, u;
        cin >> v >> u;
        --v, --u;

        if (f(v) == f(u)) ++e[f(v)];
            else {
                cnt[f(v)] += cnt[f(u)];
                e[f(v)] += e[f(u)] + 1;
            }

        pr[f(u)] = f(v);
    }

    set <int> s;
    for (int i = 0; i < n; ++i)
        s.insert(f(i));

    if (int(s.size()) > 2)
        return void(cout << "NE\n"), 0;

    for (int i = 0; i < n; ++i)
        if ((cnt[f(i)] * (cnt[f(i)] - 1) / 2) != e[f(i)])
            return void(cout << "NE\n"), 0;
    cout << "DA\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...