Submission #701506

#TimeUsernameProblemLanguageResultExecution timeMemory
701506Abrar_Al_SamitDuathlon (APIO18_duathlon)C++17
0 / 100
489 ms1048576 KiB
#include<bits/stdc++.h> using namespace std; const int nax = 1002; vector<int>g[nax]; int n, m; long long ans = 0; bool vis[nax]; int sub[nax]; int dfs1(int v, int p) { sub[v] = 1; vis[v] = 1; for(int u : g[v]) if(u!=p) { sub[v] += dfs1(u, v); } return sub[v]; } void dfs2(int v,int p, int anc) { for(int u : g[v]) if(u!=p) { long long one = sub[u]; long long two = sub[v] - sub[u] - 1; ans += one * two; dfs2(u, v, anc+1); one = sub[v] - 1; ans += one * anc; } } void PlayGround() { cin>>n>>m; for(int i=0; i<m; ++i) { int u, v; cin>>u>>v; g[u].push_back(v); g[v].push_back(u); } for(int i=1; i<=n; ++i) if(!vis[i]) { dfs1(i, i); dfs2(i, i, 0); } cout<<ans*2<<'\n'; // cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n"; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); PlayGround(); 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...