| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1013636 | Mardonbekhazratov | Horses (IOI15_horses) | C++17 | 1562 ms | 21700 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<algorithm>
#include<vector>
#include<iostream>
const long long INFLL=1e18;
const int INF=1e9;
const int MOD=1e9+7;
using namespace std;
int n;
vector<int>x,y;
int inv(int x){
return x>1 ? MOD-(long long)(MOD/x)*inv(MOD%x)%MOD : x;
}
long long pref;
int get(){
long long ans=1;
long long pr=pref;
for(int i=n-1;i>=0;i--){
ans=max(ans,1LL*y[i]);
if(ans>=INF){
ans%=MOD;
return pr*ans%MOD;
}
ans*=x[i];
pr=pr*inv(x[i])%MOD;
}
return ans*pr%MOD;
}
int init(int N, int X[], int Y[]) {
n=N;
pref=1;
x.resize(n);
y.resize(n);
for(int i=0;i<n;i++) x[i]=X[i],y[i]=Y[i],pref=pref*x[i]%MOD;
return get();
}
int updateX(int pos, int val) {
pref=pref*inv(x[pos])%MOD*val%MOD;
x[pos]=val;
return get();
}
int updateY(int pos, int val) {
y[pos]=val;
return get();
}
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... | ||||
