# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1000210 | jer033 | 말 (IOI15_horses) | C++17 | 1588 ms | 12412 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 "horses.h"
#include <bits/stdc++.h>
using ll = long long;
using namespace std;
const ll MOD = 1'000'000'007;
const ll INF = 1'000'000'006;
ll regmul(ll a, ll b)
{
return (a*b)%MOD;
}
ll boundmul(ll a, ll b)
{
return min(INF, a*b);
}
vector<int> x;
vector<int> y;
int n;
ll solve(int N)
{
ll safe = x[0];
ll bes = y[0];
ll currmul = 1;
for (int i=1; i<N; i++)
{
if (boundmul(boundmul(currmul, x[i]), y[i])>=bes)
{
safe = regmul(safe, currmul);
safe = regmul(safe, x[i]);
currmul = 1;
bes = y[i];
}
else
{
currmul = boundmul(currmul, x[i]);
}
}
return regmul(safe, bes);
}
int init(int N, int X[], int Y[]) {
for (int i=0; i<N; i++)
{
x.push_back(X[i]);
y.push_back(Y[i]);
}
n=N;
return solve(n);
}
int updateX(int pos, int val) {
x[pos] = val;
return solve(n);
}
int updateY(int pos, int val) {
y[pos] = val;
return solve(n);
}
Compilation message (stderr)
# | 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... |