Submission #603183

#TimeUsernameProblemLanguageResultExecution timeMemory
603183benjaminkleynDuathlon (APIO18_duathlon)C++17
5 / 100
1093 ms13580 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n, m; vector<int> g[100000]; int par[100000]; bool vis[100000]; bool marked[100000]; void mark(int f) { marked[f] = true; while (par[f] != f) { f = par[f]; marked[f] = true; } } void dfs(int u, int f) { if (u == f) { mark(f); return; } vis[u] = true; for (int v : g[u]) if (!vis[v]) { par[v] = u; dfs(v, f); } vis[u] = false; } int main() { cin >> n >> m; for (int i = 0, u, v; i < m; i++) { cin >> u >> v; g[u-1].push_back(v-1); g[v-1].push_back(u-1); } ll res = 0; for (int s = 0; s < n; s++) for (int f = 0; f < n; f++) { if (s == f) continue; memset(vis, false, sizeof(vis)); memset(marked, false, sizeof(marked)); par[s] = s; dfs(s, f); for (int c = 0; c < n; c++) if (c != s && c != f && marked[c]) res++; } cout << res << '\n'; return 0; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...