This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int n, cnt = 0, used[5005];
vector <int> deg;
vector <vector <int>> g;
void Init(int N_) {
n = N_;
deg.resize(n, 0);
g.resize(n);
}
void Link(int A, int B) {
deg[A] ++;
deg[B] ++;
g[A].push_back(B);
g[B].push_back(A);
if (deg[A] == 3) cnt ++;
if (deg[B] == 3) cnt ++;
}
int cnt1, cnt2, cnt3;
void dfs(int v, int skip) {
used[v] = 1;
int degree = 0;
for (auto i: g[v]) {
if (!used[i] and i != skip) dfs(i, skip);
if (i != skip) degree ++;
}
if (degree == 1) cnt1 ++;
if (degree == 2) cnt2 ++;
if (degree > 2) cnt3 ++;
}
int CountCritical() {
int res = 0;
for (int v = 0; v < n; v ++) {
int flag = 1;
memset(used, 0, sizeof(used));
for (int i = 0; i < n; i ++) {
if (i == v) continue;
if (!used[i]) {
cnt1 = cnt2 = cnt3 = 0;
dfs(i, v);
if (cnt3) flag = 0;
if (!cnt1 and cnt2) flag = 0;
}
}
res += flag;
}
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |