horses.cpp: In function 'int modpow(int, int)':
horses.cpp:13:34: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
return (1ll * res * res) % MOD;
~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp:15:55: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
return 1ll * ((1ll * res * res) % MOD) * base % MOD;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'void sub(int, int)':
horses.cpp:25:51: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
FT2[idx] = (1ll * FT2[idx] * invmod(amt)) % MOD;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'void add(int, int)':
horses.cpp:33:43: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
FT2[idx] = (1ll * FT2[idx] * amt) % MOD;
~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int sum2(int)':
horses.cpp:50:38: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
ret = (1ll * ret * FT2[idx]) % MOD;
~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:78:55: warning: this 'while' clause does not guard... [-Wmisleading-indentation]
if(mm.find(sum1(pos) + log2l(ry[pos])) == mm.end()) while(true);
^~~~~
horses.cpp:79:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'while'
mm.erase(mm.find(sum1(pos) + log2l(ry[pos])));
^~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:88:55: warning: this 'while' clause does not guard... [-Wmisleading-indentation]
if(mm.find(sum1(pos) + log2l(ry[pos])) == mm.end()) while(true);
^~~~~
horses.cpp:89:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'while'
mm.erase(mm.find(sum1(pos) + log2l(ry[pos])));
^~