Submission #54061

#TimeUsernameProblemLanguageResultExecution timeMemory
54061bogdan10bosDuathlon (APIO18_duathlon)C++14
0 / 100
103 ms13268 KiB
#include <bits/stdc++.h> using namespace std; //#define FILE_IO typedef long long LL; LL ans; int N, M; int sz[100005]; int f[100005]; vector<int> edg[100005]; void DFS(int nod, int fth) { sz[nod] = 1; LL cnt = 0; for(auto nxt: edg[nod]) { if(nxt == fth) continue; DFS(nxt, nod); sz[nod] += sz[nxt]; ans += 1LL * sz[nxt] * cnt; cnt += sz[nxt]; } ans += 1LL * (N - sz[nod]) * (sz[nod] - 1); } int main() { #ifdef FILE_IO freopen("1.in", "r", stdin); freopen("1.out", "w", stdout); #endif scanf("%d%d", &N, &M); assert(M == N - 1); for(int i = 1; i <= M; i++) { int x, y; scanf("%d%d", &x, &y); edg[x].push_back(y); edg[y].push_back(x); } DFS(1, 0); ans *= 2; printf("%lld\n", ans); return 0; }

Compilation message (stderr)

count_triplets.cpp: In function 'int main()':
count_triplets.cpp:37:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &N, &M);
     ~~~~~^~~~~~~~~~~~~~~~
count_triplets.cpp:42:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d", &x, &y);
         ~~~~~^~~~~~~~~~~~~~~~
#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...