# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
111213 | 2019-05-14T08:23:40 Z | Just_Solve_The_Problem | 철인 이종 경기 (APIO18_duathlon) | C++11 | 206 ms | 27088 KB |
#include <bits/stdc++.h> #define ll long long using namespace std; const int N = (int)2e5 + 7; int tin[N], fup[N], sz[N]; int tiktak; vector <int> gr[N]; vector <int> ngr[N]; int n, m, cl, mm; stack<int> st; ll ans = 0; void dfs(int v, int pr) { tin[v] = fup[v] = ++tiktak; st.push(v); mm++; for (int to : gr[v]) { if (to == pr) continue; if (!tin[to]) { dfs(to, v); fup[v] = min(fup[v], fup[to]); if (fup[to] >= tin[v]) { cl++; ngr[v].push_back(n + cl); while (ngr[n + cl].empty() || ngr[n + cl].back() != to) { ngr[n + cl].push_back(st.top()); st.pop(); } } } else { fup[v] = min(fup[v], tin[to]); } } } void dfs1(int v) { sz[v] = (v <= n); for (int to : ngr[v]) { dfs1(to); sz[v] += sz[to]; if (v > n) ans -= (ngr[v].size() * 1LL * (sz[to] - 1) * sz[to]); } if (v > n) ans -= ngr[v].size() * 1LL * (mm - sz[v]) * (mm - sz[v] - 1); } main() { scanf("%d %d", &n, &m); for (int i = 1; i <= m; i++) { int u, v; scanf("%d %d", &u, &v); gr[u].push_back(v); gr[v].push_back(u); } for (int i = 1; i <= n; i++) { if (!tin[i]) { mm = 0; dfs(i, i); cerr << mm << endl; ans += mm * 1LL * (mm - 1) * (mm - 2); dfs1(i); } } cout << ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 9856 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 9856 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 124 ms | 27088 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 11 ms | 9900 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 206 ms | 20600 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 9984 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 154 ms | 20572 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 9856 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 12 ms | 9856 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |