Main.cc: In function ‘void SA()’:
Main.cc:22:20: warning: array subscript has type ‘char’ [-Wchar-subscripts]
up(i,1,n)P[s[i]].p_b(i);int c=0;
^
Main.cc:2:19: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define up(i,l,r) for(int i=(l);i<=(r);++i)
^
Main.cc:22:5: note: in expansion of macro ‘up’
up(i,1,n)P[s[i]].p_b(i);int c=0;
^~
Main.cc:22:29: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
up(i,1,n)P[s[i]].p_b(i);int c=0;
^~~
Main.cc:2:19: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define up(i,l,r) for(int i=(l);i<=(r);++i)
^
Main.cc:34:9: note: in expansion of macro ‘up’
up(i,1,n)tmp[i]=rk[i];int u=0;
^~
Main.cc:34:31: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
up(i,1,n)tmp[i]=rk[i];int u=0;
^~~
Main.cc: At global scope:
Main.cc:78:2: error: expected ‘;’ after struct definition
}
^
;
Main.cc: In member function ‘ll SegTree::ask(int, int, int, int)’:
Main.cc:51:18: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
int mid=s+t>>1;
~^~
Main.cc: In member function ‘void SegTree::pu(int, int, int)’:
Main.cc:56:18: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
int mid=s+t>>1;
~^~
Main.cc: In member function ‘void SegTree::bd(int, int, int)’:
Main.cc:64:18: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
int mid=l+r>>1;
~^~
Main.cc: In member function ‘void SegTree::modify(int, int, int, int, int)’:
Main.cc:69:18: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
int mid=s+t>>1;
~^~
Main.cc: In member function ‘ll SegTree::ask(int, int, int, int, int, int&)’:
Main.cc:74:18: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
int mid=s+t>>1;ll res=0;
~^~
Main.cc:75:9: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
if(l<=mid)res+=ask(l,r,s,mid,ls(p),k);if(r>mid)res+=ask(l,r,mid+1,t,rs(p),k);
^~
Main.cc:75:47: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
if(l<=mid)res+=ask(l,r,s,mid,ls(p),k);if(r>mid)res+=ask(l,r,mid+1,t,rs(p),k);
^~
Main.cc: In function ‘int main()’:
Main.cc:84:35: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
freopen("string.in","r",stdin),freopen("string.out","w",stdout);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cc:84:35: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]