#include "horses.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll MOD = 1e9+7;
const ll MAXV = 1e9;
const int MN = 5e5+5;
int n;
vector<int> x, y;
int init(int N, int X[], int Y[]) {
	n = N;
	for (int i = 0; i < n; i++) {
		x.push_back(X[i]);
		y.push_back(Y[i]);
	}
	ll mx = 1;
	int idx = n-1;
	for (int i = n-1; i >= max(0, n - 32); i--) {
		mx *= x[i];
		if (mx > MAXV) break;
		if (y[i] >= mx) {
			mx = y[i];
			idx = i;
		}
	}
	ll b4 = 1;
	for (int i = 0; i <= idx; i++) {
		b4 *= x[i];
		b4 %= MOD;
	}
	return (ll)(b4 * (ll)y[idx]) % MOD;
}
int updateX(int pos, int val) {	
	x[pos] = val;
	ll mx = 1;
	int idx = n-1;
	for (int i = n-1; i >= max(0, n - 32); i--) {
		mx *= x[i];
		if (mx > MAXV) break;
		if (y[i] >= mx) {
			mx = y[i];
			idx = i;
		}
	}
	ll b4 = 1;
	for (int i = 0; i <= idx; i++) {
		b4 *= x[i];
		b4 %= MOD;
	}
	return (ll)(b4 * (ll)y[idx]) % MOD;
}
int updateY(int pos, int val) {
	y[pos] = val;
	ll mx = 1;
	int idx = n-1;
	for (int i = n-1; i >= max(0, n - 32); i--) {
		mx *= x[i];
		if (mx > MAXV) break;
		if (y[i] >= mx) {
			mx = y[i];
			idx = i;
		}
	}
	ll b4 = 1;
	for (int i = 0; i <= idx; i++) {
		b4 *= x[i];
		b4 %= MOD;
	}
	return (ll)(b4 * (ll)y[idx]) % MOD;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |