divide.cpp: In function 'void upd(int, int)':
divide.cpp:31:21: error: no matching function for call to 'umax(ll&, int&)'
31 | umax(f[id],x);
| ^
divide.cpp:23:24: note: candidate: 'template<class T> bool umax(T&, const T&)'
23 | template<class T> bool umax(T &a,const T &b){return (a<b?a=b,1:0);}
| ^~~~
divide.cpp:23:24: note: template argument deduction/substitution failed:
divide.cpp:31:21: note: deduced conflicting types for parameter 'const T' ('long long int' and 'int')
31 | umax(f[id],x);
| ^
divide.cpp: In function 'int get(int)':
divide.cpp:39:23: error: no matching function for call to 'umax(int&, ll&)'
39 | umax(ans,f[id]);
| ^
divide.cpp:23:24: note: candidate: 'template<class T> bool umax(T&, const T&)'
23 | template<class T> bool umax(T &a,const T &b){return (a<b?a=b,1:0);}
| ^~~~
divide.cpp:23:24: note: template argument deduction/substitution failed:
divide.cpp:39:23: note: deduced conflicting types for parameter 'const T' ('int' and 'll' {aka 'long long int'})
39 | umax(ans,f[id]);
| ^