Submission #790344

#TimeUsernameProblemLanguageResultExecution timeMemory
790344Dan4LifeDuathlon (APIO18_duathlon)C++17
8 / 100
86 ms12124 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define sz(a) (int)a.size() #define all(a) begin(a),end(a) using ar = array<int,2>; const int mxN = (int)1e5+10; int n, m, ans, vis[mxN]; vector<int> v, adj[mxN]; void dfs(int s){ vis[s]=1; v.pb(s); for(auto u : adj[s]) if(!vis[u]) dfs(u); } int32_t main() { cin >> n >> m; for(int i = 0; i < m; i++){ int a, b; cin >> a >> b; adj[a].pb(b), adj[b].pb(a); } for(int i = 1; i <= n; i++){ if(vis[i]) continue; v.clear(); dfs(i); bool ok = 1; int x = sz(v); for(auto u : v) ok&=sz(adj[u])==2; if(ok) ans+=x*(x-1)*(x-2); else ans+= (x*(x-1)*(x-2))/3; } cout << ans << "\n"; }
#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...