Submission #698553

#TimeUsernameProblemLanguageResultExecution timeMemory
698553HanksburgerDuathlon (APIO18_duathlon)C++17
23 / 100
1103 ms1048576 KiB
#include <bits/stdc++.h> using namespace std; long long sz[100005], cnt, ans; vector<long long> adj[100005]; bool visited[100005]; void dfs1(long long u, long long p) { cnt++; visited[u]=sz[u]=1; for (long long v:adj[u]) { if (v==p) continue; dfs1(v, u); sz[u]+=sz[v]; } } void dfs2(long long u, long long p) { vector<long long> vec; vec.push_back(cnt-sz[u]); for (long long v:adj[u]) { if (v==p) continue; dfs2(v, u); vec.push_back(sz[v]); } long long sum1=0, sum2=0; for (long long i=0; i<vec.size(); i++) { sum1+=vec[i]; sum2+=vec[i]*vec[i]; } ans+=sum1*sum1-sum2; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); long long n, m; cin >> n >> m; for (long long i=1; i<=m; i++) { long long u, v; cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); } for (long long i=1; i<=n; i++) { if (!visited[i]) { cnt=0; dfs1(i, 0); dfs2(i, 0); } } cout << ans; }

Compilation message (stderr)

count_triplets.cpp: In function 'void dfs1(long long int, long long int)':
count_triplets.cpp:9:21: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
    9 |     visited[u]=sz[u]=1;
      |                ~~~~~^~
count_triplets.cpp: In function 'void dfs2(long long int, long long int)':
count_triplets.cpp:30:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |     for (long long i=0; i<vec.size(); i++)
      |                         ~^~~~~~~~~~~
#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...