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 <iostream>
#include <algorithm>
#include <vector>
#define rep(i, n) for (int i=0; i<(n); i++)
#define pb push_back
#define INF (1LL<<60)
#define all(x) (x).begin(), (x).end()
#define _1 first
#define _2 second
using namespace std;
typedef pair<int, int> P;
int N;
vector<int> G[1000000];
void Init(int N_) {
N = N_;
}
void Link(int a, int b) {
G[a].pb(b);
G[b].pb(a);
}
int ord[1000000];
bool used[1000000];
int T[1000000];
void dfs(int x, int p, vector<int> &vs, P &seg) {
used[x] = true;
ord[x] = vs.size();
vs.pb(x);
for (int t : G[x]) if (t != p) {
if (used[t]) {
if (ord[x] > ord[t]) {
// [ord[t], ord[x]]
seg._1 = max(seg._1, ord[t]);
seg._2 = min(seg._2, ord[x]);
T[p]++;
T[t]--;
}
continue;
}
dfs(t, x, vs, seg);
}
}
void dfs2(int x, int p) {
used[x] = true;
for (int t : G[x]) if (t != p && !used[t]) {
dfs2(t, x);
T[x] += T[t];
}
}
int CountCritical() {
vector<int> vs;
rep(i, N) used[i] = false, ord[i] = -1, T[i] = 0;
P seg(0, N-1);
rep(i, N) if (!used[i]) dfs(i, -1, vs, seg);
rep(i, N) used[i] = false;
rep(i, N) if (!used[i]) dfs2(i, -1);
int deg3 = 0;
auto add = [&](int d) { if (d >= 3) deg3++; };
auto rem = [&](int d) { if (d >= 3) deg3--; };
rep(i, N) add(G[i].size());
int ctr = 0;
for (int i=seg._1; i<=seg._2; i++) {
int x = vs[i];
if (T[x] >= 2) continue;
rem(G[x].size());
for (int t : G[x]) {
rem(G[t].size());
add(G[t].size()-1);
}
if (deg3 == 0) ctr++;
for (int t : G[x]) {
rem(G[t].size()-1);
add(G[t].size());
}
add(G[x].size());
}
return ctr;
}
# | 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... |