#include "horses.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 5e5 + 5;
const ll MOD = 1e9 + 7;
vector<ll> x(N), y(N);
vector<long double> pf(N);
int n;
int init(int NN, int X[], int Y[]) {
n = NN;
for(int i = 0;i<n;i++) x[i] = X[i], y[i] = Y[i];
pf[0] = log(x[0]);
for(int i = 1;i<n;i++){
pf[i] = pf[i - 1] + log(x[i]);
}
int id = -1, mx = -1;
for(int i = 0;i<n;i++){
if(pf[i] + log(y[i]) > mx){
mx = pf[i] + log(y[i]);
id = i;
}
}
int ans = 1;
for(int i = 0;i<=id;i++){
ans *= x[i];
ans %= MOD;
}
ans *= y[id];
return ans % MOD;
}
int updateX(int pos, int val) {
x[pos] = val;
pf[0] = log(x[0]);
for(int i = 1;i<n;i++){
pf[i] = pf[i - 1] + log(x[i]);
}
int id = -1, mx = -1;
for(int i = 0;i<n;i++){
if(pf[i] + log(y[i]) > mx){
mx = pf[i] + log(y[i]);
id = i;
}
}
int ans = 1;
for(int i = 0;i<=id;i++){
ans *= x[i];
ans %= MOD;
}
ans *= y[id];
return ans % MOD;
}
int updateY(int pos, int val) {
y[pos] = val;
pf[0] = log(x[0]);
for(int i = 1;i<n;i++){
pf[i] = pf[i - 1] + log(x[i]);
}
int id = -1, mx = -1;
for(int i = 0;i<n;i++){
if(pf[i] + log(y[i]) > mx){
mx = pf[i] + log(y[i]);
id = i;
}
}
int ans = 1;
for(int i = 0;i<=id;i++){
ans *= x[i];
ans %= MOD;
}
ans *= y[id];
return ans % 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... |