#include<bits/stdc++.h>
#include "horses.h"
#define LL long long
using namespace std;
const int N_MAX = 5E5 + 1;
const LL mod = 1E9 + 7 , oo = 1E9;
int n;
vector<LL> x(N_MAX) , y(N_MAX);
int calc(){
   int j = 0; 
   LL prd = 1;
   for(int i = n - 1;i >= 0;i --){
      j = i;
      if(x[i] * prd > oo){
         break;
      }
      prd *= x[i];
   }
   prd = 1;
   LL best = 0;
   for(int i = j;i < n;i ++){
      prd *= x[i];
      best = max(best , prd * y[i]);
   }
   best %= mod;
   for(int i = 0;i < j;i ++){
      best = x[i] * best % mod;
   }
   best %= mod;
   return (int)best;
}
int init(int N, int X[], int Y[]) {
   n = N;
   for(int i = 0;i < N;i ++){
      x[i] = X[i];
      y[i] = Y[i];
   }
   return calc();
}
int updateX(int pos, int val) {	
   x[pos] = val;
	return calc();
}
int updateY(int pos, int val) {
   y[pos] = val;
	return calc();
}
| # | 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... |