foo.cc: In member function 'void tree::build(int, int, int)':
foo.cc:19:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   19 |         int mid = L + R >> 1;
      |                   ~~^~~
foo.cc: In member function 'void tree::modify(int, int, int, int)':
foo.cc:29:27: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   29 |         int mid = nd[p].L + nd[p].R >> 1;
      |                   ~~~~~~~~^~~~~~~~~
foo.cc: In member function 'void tree::query(int, int)':
foo.cc:44:27: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   44 |         int mid = nd[p].L + nd[p].R >> 1;
      |                   ~~~~~~~~^~~~~~~~~
foo.cc: In function 'int main()':
foo.cc:64:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   64 |     scanf("%d %d", &n, &q);
      |     ~~~~~^~~~~~~~~~~~~~~~~
foo.cc:73:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   73 |         scanf("%d", &op);
      |         ~~~~~^~~~~~~~~~~
foo.cc:77:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   77 |             scanf("%d %d %d", &l, &r, &v);
      |             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
foo.cc:81:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   81 |             scanf("%d %d", &x, &v);
      |             ~~~~~^~~~~~~~~~~~~~~~~
foo.cc:88:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   88 |             scanf("%d", &x);
      |             ~~~~~^~~~~~~~~~
   
  
    [Hydro](https://hydro.ac)提供评测服务