count_triplets.cpp: In function 'void solve(int)':
count_triplets.cpp:8:15: error: invalid cast from type 'std::vector<int>' to type 'int'
8 | #define sz(x) (int)x.size()
| ^~~~~~~~~~~~~
9 | #define all(x) x.begin(),x.end()
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10 | #define vi vector<int>
| ~~~~~~~~~~~~~~~~~~~~~~
11 | #define vvi vector<vi>
| ~~~~~~~~~~~~~~~~~~~~~~
12 | using namespace std;
| ~~~~~~~~~~~~~~~~~~~~
13 | const int N=1e5+5;
| ~~~~~~~~~~~~~~~~~~
14 | vi g[N];stack<int>st;
| ~~~~~~~~~~~~~~~~~~~~~
15 | vector<int>bst[500001];ll x=0,n;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16 | ll d[N]{0},lo[N]{0},t=0,ap[N]{0},id[N]{0},cur=1,isap[N]{0},sz[N];
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 | void dfs(int u,int p){x++;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
18 | lo[u]=d[u]=++t;st.push(u);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
19 | for(auto v:g[u]){
| ~~~~~~~~~~~~~~~~~
20 | if(!d[v]){
| ~~~~~~~~~~
21 | dfs(v,u);
| ~~~~~~~~~
22 | lo[u]=min(lo[u],lo[v]);
| ~~~~~~~~~~~~~~~~~~~~~~~
23 | if(d[u]<=lo[v]){
| ~~~~~~~~~~~~~~~~
24 | bst[u].pb(cur+n);bst[cur+n].pb(u);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25 | while(bst[cur+n].empty()||bst[cur+n].back()!=v){
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26 | bst[cur+n].pb(st.top());bst[st.top()].pb(u);st.pop();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27 | }cur++;
| ~~~~~~~
28 | }
| ~
29 | }
| ~
30 | else if(v!=p)lo[u]=min(lo[u],d[v]);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 | }
| ~
32 | }
| ~
33 | ll ans=0;
| ~~~~~~~~~
34 | void solve(int u){
| ~~~~~~~~~~~~~~~~~~
35 | sz[u]=(u<=n);
| ~~~~~~~~~~~~~
36 | for(auto v:bst[u]){
| ~~~~~~~~~~~~~~~~~~~
37 | solve(v);sz[u]+=sz[v];
| ~~~~~~~~~~~~~~~~~~~~~~
38 | if(u>n)ans-=sz[v]*(sz[v]-1)*sz(bst[u]-1);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
count_triplets.cpp:38:37: note: in expansion of macro 'sz'
38 | if(u>n)ans-=sz[v]*(sz[v]-1)*sz(bst[u]-1);
| ^~
count_triplets.cpp:8:22: error: request for member 'size' in '1', which is of non-class type 'int'
8 | #define sz(x) (int)x.size()
| ^~~~
count_triplets.cpp:38:37: note: in expansion of macro 'sz'
38 | if(u>n)ans-=sz[v]*(sz[v]-1)*sz(bst[u]-1);
| ^~
count_triplets.cpp:8:15: error: invalid cast from type 'std::vector<int>' to type 'int'
8 | #define sz(x) (int)x.size()
| ^~~~~~~~~~~~~
9 | #define all(x) x.begin(),x.end()
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10 | #define vi vector<int>
| ~~~~~~~~~~~~~~~~~~~~~~
11 | #define vvi vector<vi>
| ~~~~~~~~~~~~~~~~~~~~~~
12 | using namespace std;
| ~~~~~~~~~~~~~~~~~~~~
13 | const int N=1e5+5;
| ~~~~~~~~~~~~~~~~~~
14 | vi g[N];stack<int>st;
| ~~~~~~~~~~~~~~~~~~~~~
15 | vector<int>bst[500001];ll x=0,n;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16 | ll d[N]{0},lo[N]{0},t=0,ap[N]{0},id[N]{0},cur=1,isap[N]{0},sz[N];
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 | void dfs(int u,int p){x++;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
18 | lo[u]=d[u]=++t;st.push(u);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
19 | for(auto v:g[u]){
| ~~~~~~~~~~~~~~~~~
20 | if(!d[v]){
| ~~~~~~~~~~
21 | dfs(v,u);
| ~~~~~~~~~
22 | lo[u]=min(lo[u],lo[v]);
| ~~~~~~~~~~~~~~~~~~~~~~~
23 | if(d[u]<=lo[v]){
| ~~~~~~~~~~~~~~~~
24 | bst[u].pb(cur+n);bst[cur+n].pb(u);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25 | while(bst[cur+n].empty()||bst[cur+n].back()!=v){
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26 | bst[cur+n].pb(st.top());bst[st.top()].pb(u);st.pop();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
27 | }cur++;
| ~~~~~~~
28 | }
| ~
29 | }
| ~
30 | else if(v!=p)lo[u]=min(lo[u],d[v]);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 | }
| ~
32 | }
| ~
33 | ll ans=0;
| ~~~~~~~~~
34 | void solve(int u){
| ~~~~~~~~~~~~~~~~~~
35 | sz[u]=(u<=n);
| ~~~~~~~~~~~~~
36 | for(auto v:bst[u]){
| ~~~~~~~~~~~~~~~~~~~
37 | solve(v);sz[u]+=sz[v];
| ~~~~~~~~~~~~~~~~~~~~~~
38 | if(u>n)ans-=sz[v]*(sz[v]-1)*sz(bst[u]-1);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
39 | }
| ~
40 | if(u>n)ans-=(x-sz[u])*(x-sz[u]-1)*sz(bst[u]-1);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
count_triplets.cpp:40:39: note: in expansion of macro 'sz'
40 | if(u>n)ans-=(x-sz[u])*(x-sz[u]-1)*sz(bst[u]-1);
| ^~
count_triplets.cpp:8:22: error: request for member 'size' in '1', which is of non-class type 'int'
8 | #define sz(x) (int)x.size()
| ^~~~
count_triplets.cpp:40:39: note: in expansion of macro 'sz'
40 | if(u>n)ans-=(x-sz[u])*(x-sz[u]-1)*sz(bst[u]-1);
| ^~