horses.cpp: In function 'value op(value, double, int)':
horses.cpp:19:31: warning: conversion from 'i64' {aka 'long long int'} to 'int' may change value [-Wconversion]
19 | a.second = (i64)a.second * c % mod;
| ~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'void load(int, int, int)':
horses.cpp:34:51: warning: conversion from 'i64' {aka 'long long int'} to '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} may change value [-Wconversion]
34 | prod[no] = (i64)prod[2 * no] * prod[2 * no + 1] % mod;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'void upd(int, int, int, int, int, int)':
horses.cpp:50:51: warning: conversion from 'i64' {aka 'long long int'} to '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} may change value [-Wconversion]
50 | prod[no] = (i64)prod[2 * no] * prod[2 * no + 1] % mod;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
horses.cpp: In function 'int init(int, int*, int*)':
horses.cpp:54:30: warning: declaration of 'Y' shadows a global declaration [-Wshadow]
54 | int init(int N, int X[], int Y[]) {
| ~~~~^~~
horses.cpp:14:29: note: shadowed declaration is here
14 | std :: vector<int> prod, X, Y;
| ^
horses.cpp:54:21: warning: declaration of 'X' shadows a global declaration [-Wshadow]
54 | int init(int N, int X[], int Y[]) {
| ~~~~^~~
horses.cpp:14:26: note: shadowed declaration is here
14 | std :: vector<int> prod, X, Y;
| ^
horses.cpp:54:14: warning: declaration of 'N' shadows a global declaration [-Wshadow]
54 | int init(int N, int X[], int Y[]) {
| ~~~~^
horses.cpp:15:5: note: shadowed declaration is here
15 | int N;
| ^
horses.cpp:55:6: warning: declaration of 'lg' shadows a global declaration [-Wshadow]
55 | int lg = 31 - __builtin_clz(N);
| ^~
horses.cpp:13:23: note: shadowed declaration is here
13 | std :: vector<double> lg;
| ^~