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]