factories.cpp:14:24: error: conflicting declaration 'std::map<std::pair<int, int>, int> res'
map<pair<int,int>,int> res;
^~~
factories.cpp:12:11: note: previous declaration as 'long long int res [500001][2]'
long long res[N][2],ans;
^~~
factories.cpp: In function 'void dfs(int, int)':
factories.cpp:19:14: warning: decomposition declaration only available with -std=c++1z or -std=gnu++1z
for(auto [d,v] : adj[u]) if(v!=p) dis[v] = dis[u]+d,dfs(v,u);
^
factories.cpp: In function 'void getsz(int, int)':
factories.cpp:22:46: warning: decomposition declaration only available with -std=c++1z or -std=gnu++1z
void getsz(int u,int p){ sz[u] = 1; for(auto [d,v] : adj[u]) if(v!=p and !blocked[v]) getsz(v,u),sz[u]+=sz[v]; }
^
factories.cpp:22:50: warning: unused variable 'd' [-Wunused-variable]
void getsz(int u,int p){ sz[u] = 1; for(auto [d,v] : adj[u]) if(v!=p and !blocked[v]) getsz(v,u),sz[u]+=sz[v]; }
^
factories.cpp: In function 'void build(int, int)':
factories.cpp:31:18: warning: decomposition declaration only available with -std=c++1z or -std=gnu++1z
for(auto [d,v] : adj[c]) if(v!=prev and !blocked[v] and sz[v]>mx) mx = sz[v],r = v;
^
factories.cpp:31:22: warning: unused variable 'd' [-Wunused-variable]
for(auto [d,v] : adj[c]) if(v!=prev and !blocked[v] and sz[v]>mx) mx = sz[v],r = v;
^
factories.cpp:36:14: warning: decomposition declaration only available with -std=c++1z or -std=gnu++1z
for(auto [d,v] : adj[c]) if(!blocked[v]) build(v,c);
^
factories.cpp:36:18: warning: unused variable 'd' [-Wunused-variable]
for(auto [d,v] : adj[c]) if(!blocked[v]) build(v,c);
^
factories.cpp: In function 'int lca(int, int)':
factories.cpp:55:17: error: invalid types 'long long int [500001][2][<brace-enclosed initializer list>]' for array subscript
if(res[{a,b}]) return res[{a,b}];
^
factories.cpp:55:36: error: invalid types 'long long int [500001][2][<brace-enclosed initializer list>]' for array subscript
if(res[{a,b}]) return res[{a,b}];
^
factories.cpp:61:23: error: invalid types 'long long int [500001][2][<brace-enclosed initializer list>]' for array subscript
return res[{aa,bb}] = dp[0][a];
^