# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
393967 | 79brue | Duathlon (APIO18_duathlon) | C++14 | 75 ms | 21152 KiB |
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;
typedef long long ll;
int n, m;
vector<int> link[100002];
ll ans;
void input();
void makeBCC();
int main(){
input();
makeBCC();
printf("%lld", ans);
}
void input(){
scanf("%d %d", &n, &m);
for(int i=1; i<=m; i++){
int x, y;
scanf("%d %d", &x, &y);
link[x].push_back(y);
link[y].push_back(x);
}
}
bool seen[100002];
ll seenCnt;
int dfsn[100002];
int dcnt;
stack<pair<int, int> > stk;
vector<vector<pair<int, int> > > BCC;
int dfs(int x, int prv = -1){
int result = dfsn[x] = ++dcnt;
seenCnt++;
for(auto y: link[x]){
if(prv == y) continue;
if(dfsn[x] > dfsn[y]) stk.push(make_pair(x, y));
if(dfsn[y] > 0) result = min(result, dfsn[y]);
else{
int tmp = dfs(y, x);
result = min(result, tmp);
if(tmp >= dfsn[x]){
vector<pair<int, int> > currBCC;
while(!stk.empty() && stk.top() != make_pair(x, y)){
currBCC.push_back(stk.top());
stk.pop();
}
currBCC.push_back(stk.top());
stk.pop();
BCC.push_back(currBCC);
}
}
}
return result;
}
void makeBCC(){
for(int i=1; i<=n; i++){
if(!seen[i]){
seenCnt = 0;
dfs(i);
ans += seenCnt * (seenCnt-1) * (seenCnt-2) / 3;
}
}
}
Compilation message (stderr)
# | 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... |
# | 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... |