Submission #626951

#TimeUsernameProblemLanguageResultExecution timeMemory
626951GloryPaths (RMI21_paths)C++17
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; int n,k,res=0,l[100005]; long long d[100005]; int parent[100005]; int sparse_table[100005][25]; vector<pair<int,int>> gr[100005]; pair<long long,int> a; map<pair<int,int>,long long> mp; set<pair<int,int> path; void dfs(int u,int par,long long dh,int lh) { parent[u]=par; sparse_table[u][0] = par; l[u] = lh; d[u] = dh; for (auto [v,w]: gr[u]){ if(v != par){ dfs(v,u,w+dh,lh+1); } } } void dfs_1(int u,int par,long long dh) { a = max(a, {dh,u}); for(auto [v,w]: gr[u]){ if(v != par){ dfs_1(v, u, w+dh); } } } void preprocess_lca() { for (int k = 1; k <= 20; k++){ for (int i = 1; i <= n; i++){ sparse_table[i][k] = sparse_table[sparse_table[i][k - 1]][k - 1]; } } } int lca(int p, int q) { for (int i = 20; i >= 0; i--){ if (l[sparse_table[p][i]] >= l[q]){ p = sparse_table[p][i]; } } for (int i = 20; i >= 0; i--){ if (l[sparse_table[q][i]] >= l[p]){ q = sparse_table[q][i]; } } if (p == q){ return p; } for (int i = 20; i >= 0; i--){ if (sparse_table[p][i] != sparse_table[q][i]) { p = sparse_table[p][i]; q = sparse_table[q][i]; } } return parent[p]; } void sub_5(){ a = {-100,-100}; dfs_1(1,-1,0); int pa = a.second; a = {-100,-100}; dfs_1(pa,-1,0); int pb = a.second; dfs(1,-1,0ll,0); preprocess_lca(); for(int i = 1;i <= n; i++){ cout<<max(d[i]+d[pa]-d[lca(i,pa)]*2, d[i]+d[pb]-d[lca(i,pb)]*2)<<endl; } } void sub_1(){ int32_t main(){ cin>>n>>k; for(int i = 1;i < n; i++){ int u,v,w; cin>>u>>v>>w; gr[u].push_back({v,w}); gr[v].push_back({u,w}); mp[{u,v}] = w; mp[{v,u}] = w; } if(k == 1)sub_5(); else sub_1(); }

Compilation message (stderr)

Main.cpp:10:19: error: template argument 1 is invalid
   10 | set<pair<int,int> path;
      |                   ^~~~
Main.cpp:10:19: error: template argument 2 is invalid
Main.cpp:10:19: error: template argument 3 is invalid
Main.cpp: In function 'void sub_1()':
Main.cpp:90:15: error: a function-definition is not allowed here before '{' token
   90 | int32_t main(){
      |               ^
Main.cpp:103:1: error: expected '}' at end of input
  103 | }
      | ^
Main.cpp:88:13: note: to match this '{'
   88 | void sub_1(){
      |             ^