horses.cpp: In constructor 'ST::ST(int)':
horses.cpp:10:10: warning: declaration of 'sz' shadows a member of 'ST' [-Wshadow]
10 | ST (int sz) : sz(sz), mul(2*sz, 1), mx(2*sz){}
| ~~~~^~
horses.cpp:8:6: note: shadowed declaration is here
8 | int sz;
| ^~
horses.cpp: In constructor 'ST::ST(int)':
horses.cpp:10:10: warning: declaration of 'sz' shadows a member of 'ST' [-Wshadow]
10 | ST (int sz) : sz(sz), mul(2*sz, 1), mx(2*sz){}
| ~~~~^~
horses.cpp:8:6: note: shadowed declaration is here
8 | int sz;
| ^~
horses.cpp: In constructor 'ST::ST(int)':
horses.cpp:10:10: warning: declaration of 'sz' shadows a member of 'ST' [-Wshadow]
10 | ST (int sz) : sz(sz), mul(2*sz, 1), mx(2*sz){}
| ~~~~^~
horses.cpp:8:6: note: shadowed declaration is here
8 | int sz;
| ^~
horses.cpp: In member function 'int ST::qmul(int, int)':
horses.cpp:22:42: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
22 | if (l&1) res = (long long)res*mul[l++]%MOD;
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~
horses.cpp:23:42: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
23 | if (r&1) res = (long long)res*mul[--r]%MOD;
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~
horses.cpp: In member function 'void ST::umul(int, int)':
horses.cpp:30:58: warning: conversion from 'long long int' to '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} may change value [-Wconversion]
30 | for (; x /= 2;) mul[x] = (long long)mul[x*2]*mul[x*2+1]%MOD;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
horses.cpp: In function 'int ans()':
horses.cpp:43:45: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
43 | val = x[*it] * max((long long)st.qmx(*it, pos), val);
| ^~~
horses.cpp:48:28: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
48 | return val%MOD*st.qmul(0, pos)%MOD;
| ^~~
horses.cpp:48:32: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
48 | return val%MOD*st.qmul(0, pos)%MOD;
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~