foo.cpp: In function 'void work()':
foo.cpp:39:26: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
s[i][j] = (1<<i-1)|(1<<j-1);
~^~
foo.cpp:39:35: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
s[i][j] = (1<<i-1)|(1<<j-1);
~^~
foo.cpp:43:61: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
if(dcmp(aa,a) && dcmp(bb,b)) s[i][j] |= (1<<k-1);
~^~
foo.cpp:47:50: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
for (int i = 1; i <= n; i++) s[i][i] |= (1<<i-1);
~^~