foo.cpp: In function 'void update(int, point*, int)':
foo.cpp:45:10: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
int m=l+r>>1;
^
foo.cpp:46:7: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
if(m!=1&p[v]<slope(ch[m],ch[m-1]))r=m-1;
^
foo.cpp: In member function 'void segmenttree::build(int, int, int, int&)':
foo.cpp:61:10: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
int m=l+r>>1;
^
foo.cpp: In member function 'void segmenttree::insert(int, int, int, int, point)':
foo.cpp:70:10: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
int m=l+r>>1;
^
foo.cpp: In member function 'void segmenttree::query(int, int, int, int, int, int)':
foo.cpp:77:11: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
int m=l+r>>1;
^
foo.cpp: In function 'void cal(int)':
foo.cpp:95:13: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
int m=l+r>>1;
^
foo.cpp: In function 'int main()':
foo.cpp:140:35: error: no matching function for call to 'read(char&)'
read(fa[i]);read(w[i]);read(p[i]);read(q[i]);read(lim[i]);
^
foo.cpp:140:35: note: candidates are:
foo.cpp:17:6: note: void read(int&)
void read(int &x){
^
foo.cpp:17:6: note: no known conversion for argument 1 from 'char' to 'int&'
foo.cpp:24:6: note: void read(LL&)
void read(LL &x){
^
foo.cpp:24:6: note: no known conversion for argument 1 from 'char' to 'LL& {aka long long int&}'
foo.cpp:148:43: warning: unknown conversion type character 'l' in format [-Wformat=]
for(int i=2;i<=n;i++)printf("%lld\n",f[i]);
^
foo.cpp:148:43: warning: too many arguments for format [-Wformat-extra-args]