foo.cc: In function ‘void dts::tr_dfs1(ll, ll)’:
foo.cc:29:14: warning: comparison of integer expressions of different signedness: ‘dts::ll’ {aka ‘long long int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
29 | for (ll i=0;i<tr[now].s.size();i++)
| ~^~~~~~~~~~~~~~~~~
foo.cc: In function ‘void dts::tr_dfs2(ll, ll)’:
foo.cc:48:14: warning: comparison of integer expressions of different signedness: ‘dts::ll’ {aka ‘long long int’} and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
48 | for (ll i=0;i<tr[now].s.size();i++)
| ~^~~~~~~~~~~~~~~~~
foo.cc: In function ‘dts::ll dts::ask(ll, ll)’:
foo.cc:152:25: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
152 | ll ansn=ians+jans+st_ask(&nst[-1],1,tr[lcan].id,tr[i].id)+st_ask(&nst[-1],1,tr[lcan].id,tr[j].id)-st_ask(&nst[-1],1,tr[lcan].id,tr[lcan].id);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:83:9: note: while referencing ‘dts::nst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc:152:65: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
152 | ll ansn=ians+jans+st_ask(&nst[-1],1,tr[lcan].id,tr[i].id)+st_ask(&nst[-1],1,tr[lcan].id,tr[j].id)-st_ask(&nst[-1],1,tr[lcan].id,tr[lcan].id);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:83:9: note: while referencing ‘dts::nst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc:152:105: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
152 | ll ansn=ians+jans+st_ask(&nst[-1],1,tr[lcan].id,tr[i].id)+st_ask(&nst[-1],1,tr[lcan].id,tr[j].id)-st_ask(&nst[-1],1,tr[lcan].id,tr[lcan].id);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:83:9: note: while referencing ‘dts::nst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc:153:15: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
153 | ll ansl=st_ask(&lst[-1],1,tr[lcan].dep,tr[x].dep)+st_ask(&lst[-1],1,tr[lcan].dep,tr[y].dep)-st_ask(&lst[-1],1,tr[lcan].dep,tr[lcan].dep);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:83:24: note: while referencing ‘dts::lst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc:153:57: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
153 | ll ansl=st_ask(&lst[-1],1,tr[lcan].dep,tr[x].dep)+st_ask(&lst[-1],1,tr[lcan].dep,tr[y].dep)-st_ask(&lst[-1],1,tr[lcan].dep,tr[lcan].dep);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:83:24: note: while referencing ‘dts::lst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc:153:99: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
153 | ll ansl=st_ask(&lst[-1],1,tr[lcan].dep,tr[x].dep)+st_ask(&lst[-1],1,tr[lcan].dep,tr[y].dep)-st_ask(&lst[-1],1,tr[lcan].dep,tr[lcan].dep);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:83:24: note: while referencing ‘dts::lst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc:151:13: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
151 | jans+=st_ask(&nst[-1],1,tr[tr[j].top].id,tr[j].id);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:83:9: note: while referencing ‘dts::nst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc:149:13: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
149 | ians+=st_ask(&nst[-1],1,tr[tr[i].top].id,tr[i].id);
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:83:9: note: while referencing ‘dts::nst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc: In function ‘void dts::main()’:
foo.cc:181:9: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
181 | st_build(&nst[-1],1,1,cnt,&d[0]);
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:83:9: note: while referencing ‘dts::nst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc:183:9: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
183 | st_build(&lst[-1],1,1,maxdep,&d[0]);
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:83:24: note: while referencing ‘dts::lst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc:196:10: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
196 | st_update(&lst[-1],1,x,x,-y);
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~
foo.cc:83:24: note: while referencing ‘dts::lst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~
foo.cc:194:10: warning: array subscript -1 is below array bounds of ‘dts::st_node [131073]’ [-Warray-bounds=]
194 | st_update(&lst[-1],1,x,x,y);
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~
foo.cc:83:24: note: while referencing ‘dts::lst’
83 | st_node nst[(1<<17)+1],lst[(1<<17)+1];//nst:按節點的線段樹,lst:按深度的線段樹
| ^~~