Main.cc: In function ‘void bd(long long int, long long int, long long int)’: Main.cc:63:16: error: no match for ‘operator=’ (operand types are ‘node’ and ‘’) T[x]={0,0,0,1}; ^ Main.cc:26:8: note: candidate: node& node::operator=(const node&) struct node{ ^~~~ Main.cc:26:8: note: no known conversion for argument 1 from ‘’ to ‘const node&’ Main.cc:26:8: note: candidate: node& node::operator=(node&&) Main.cc:26:8: note: no known conversion for argument 1 from ‘’ to ‘node&&’ Main.cc:66:11: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses] int mid=l+r>>1; ~^~ Main.cc: In function ‘void add(long long int, long long int, long long int, long long int, long long int, long long int, long long int)’: Main.cc:79:11: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses] int mid=l+r>>1; ~^~ Main.cc: In function ‘int main()’: Main.cc:125:9: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result] freopen("route.in","r",stdin); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ Main.cc:126:9: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result] freopen("route.out","w",stdout); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~