doll.cpp: In function 'void dfs(int)':
doll.cpp:21:12: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
21 | if ((1<<l-1)<=i) {val[i]=v; return ;}
| ~^~
doll.cpp: In function 'void create_circuit(int, vim)':
doll.cpp:40:18: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
40 | for (int i=(1<<l-1); i<(1<<l)-N; i++) chk[i]=1;
| ~^~
doll.cpp:41:18: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
41 | for (int i=(1<<l-1)-1; i; i--) {if (chk[i*2]&&chk[i*2+1]) chk[i]=1;}
| ~^~
doll.cpp:43:23: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
43 | for (int i=1; i<(1<<l-1); i++) if (cnt[i]) assert(false);
| ~^~
doll.cpp:45:23: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
45 | for (int i=1; i<(1<<l-1); i++) {
| ~^~
doll.cpp:50:23: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
50 | for (int i=1; i<(1<<l-1); i++) {
| ~^~
doll.cpp:52:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
52 | if (-num[i]!=X.size()+1) assert(false);
| ~~~~~~~^~~~~~~~~~~~
doll.cpp:55:22: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
55 | else if (i*2>=(1<<l-1)) X.push_back(val[i*2]);
| ~^~
doll.cpp:59:24: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
59 | else if (i*2+1>=(1<<l-1)) Y.push_back(val[i*2+1]);
| ~^~