horses.cpp: In member function 'void AIB1::update(int, int)':
horses.cpp:19:44: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
19 | aib[i] = (long long)aib[i] * x % MOD;
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In member function 'int AIB1::query(int)':
horses.cpp:27:39: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
27 | p = (long long)p * aib[i] % MOD;
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int lgPut(int, int)':
horses.cpp:64:26: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
64 | p = (long long)p * p % MOD;
| ~~~~~~~~~~~~~~~~~^~~~~
horses.cpp:66:30: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
66 | p = (long long)p * a % MOD;
| ~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'void calc()':
horses.cpp:88:34: warning: conversion from 'long double' to 'double' may change value [-Wfloat-conversion]
88 | val[i] = cost.query( i ) + log( y[i] );
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
horses.cpp: In function 'int answer()':
horses.cpp:101:48: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
101 | return (long long)horses.query( i ) * y[i] % MOD;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int updateX(int, int)':
horses.cpp:123:30: warning: conversion from 'long double' to 'double' may change value [-Wfloat-conversion]
123 | val[i] = cost.query( i ) + log( y[i] );
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
horses.cpp:127:30: warning: conversion from 'long double' to 'double' may change value [-Wfloat-conversion]
127 | val[i] = cost.query( i ) + log( y[i] );
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
horses.cpp: In function 'int updateY(int, int)':
horses.cpp:139:30: warning: conversion from 'long double' to 'double' may change value [-Wfloat-conversion]
139 | val[i] = cost.query( i ) + log( y[i] );
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~