제출 #595977

#제출 시각아이디문제언어결과실행 시간메모리
595977snasibov05낙하산 고리들 (IOI12_rings)C++14
20 / 100
4083 ms35788 KiB
#include "bits/stdc++.h"
using namespace std;

int n;
vector<vector<int>> ed;


void Init(int N_) {

    n = N_;
    ed.resize(n);

}

void Link(int A, int B) {

    ed[A].push_back(B);
    ed[B].push_back(A);
}

bool dfs(int cur, int pr, int crt, vector<bool>& visited){
    visited[cur] = true;
    for (auto to : ed[cur]){
        if (to == pr || to == crt) continue;
        if (visited[to]) return false;
        if (!dfs(to, cur, crt, visited)) return false;
    }

    return true;
}

int CountCritical() {

    int cnt = 0;
    for (int i = 0; i < n; ++i){

        bool flag = true;
        vector<bool> visited(n);
        for (int j = 0; j < n; ++j) {
            if (i == j || visited[j]) continue;
            flag = flag & dfs(j, j, i, visited);
        }

        for (int j = 0; j < n; ++j){
            if (i == j) continue;
            int deg = 0;
            for (auto to : ed[j]) {
                if (to == i) continue;
                deg++;
            }
            if (deg > 2) flag = false;
        }

        cnt += flag;

    }

    return cnt;
}
#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...