# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
676030 | Hacv16 | Horses (IOI15_horses) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define fr first
#define sc second
typedef long long ll;
const int MAX = 1010;
const int INF = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
int n, x[MAX], y[MAX];
int getAnswer(){
ll h = 1, l = 0, p = 1, resp = 0;
for(int i = 0; i < n; i++) {
h *= x[i];
p = (p * x[i] % mod);
long double aux = y[i] * h;
if(aux > (long double) l){
resp = (p * y[i]) % MOD;
h = 1, l = y[i];
}
}
resp %= MOD;
return (int) resp;
}
int init(int _n, int _x[], int _y[]){
n = _n;
for(int i = 1; i <= n; i++)
x[i] = _x[i - 1], y[i] = _y[i - 1];
return getAnswer();
}
int updateX(int pos, int val){
x[pos + 1] = val;
return getAnswer();
}
int updateY(int pos, int val){
y[pos + 1] = val;
return getAnswer();
}