제출 #329287

#제출 시각아이디문제언어결과실행 시간메모리
329287gustasonRonald (COCI17_ronald)C++14
120 / 120
48 ms4460 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int maxN = 1005;
vector<int> adj[maxN];
bool visited[maxN];
int arithmeticProgression(int a, int b, int n) {
    return n * (a + b) / 2;
}
int edges, sz;
void dfs(int v) {
    visited[v] = true;
    sz++;
    for(int u : adj[v]) {
        edges++;
        if (!visited[u])
            dfs(u);
    }
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, m;
    cin >> n >> m;
    for(int i = 0; i < m; i++) {
        int a, b;
        cin >> a >> b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }

    int conn = 0;
    bool complete = 1;
    for(int i = 1; i <= n; i++) {
        if (!visited[i]) {
            conn++;
            edges = 0, sz = 0;
            dfs(i);
            edges /= 2;
            if (arithmeticProgression(sz-1, 1, sz-1) != edges) {
                complete = false;
                break;
            }
        }
    }

    if (conn == 2 && complete) {
        cout << "DA\n";
    } else {
        cout << "NE\n";
    }
    return 0;
}
#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...