# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
206135 | awlintqaa | Horses (IOI15_horses) | C++14 | 1584 ms | 17016 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.
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#include <bits/stdc++.h>
using namespace std;
#define sqr 200
#define mid (l+r)/2
#define pb push_back
#define ppb pop_back
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define ins insert
#define era erase
#define C continue
#define mem(dp,i) memset(dp,i,sizeof(dp))
#define mset multiset
typedef long long ll;
typedef short int si;
typedef long double ld;
typedef pair<int,int> pi;
typedef pair<ll,ll> pll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<pi> vpi;
typedef vector<pll> vpll;
const ll mod=1e9+7;
const ll inf= 4e18;
const ld pai=acos(-1);
#include "horses.h"
ll n ;
ll a[500009],cost[500009] , bs[500009];
bool overflow(ll x ,ll y){
return (x > inf / y);
}
ll solve(){
ll st=0;
ll crnt =1 ;
for(ll i=n-1;i>=0;i--){
if(overflow(crnt*a[i],(ll)1e9) ){
st=i;
break;
}
crnt*=a[i];
}
crnt=1;
ll mx=0;
ll id=0;
for(ll i=st;i<n;i++){
crnt*=a[i];
if ( overflow ( cost[i] , crnt))while(1){}
if(crnt*cost[i] > mx ){
mx=crnt*cost[i];
id=i;
}
}
crnt = bs[st];
for ( int i = st+1 ;i <= id ;i ++ ){
crnt *= a[i];
crnt%=mod;
}
return ((crnt%mod)*(cost[id]%mod))%mod;
}
int init(int N, int X[], int Y[]) {
n = N;
for ( int i =0 ;i < n ;i ++ ) a[i]=X[i];
for ( int i =0 ;i < n ;i ++ ) cost [i] = Y [i];
ll crnt = 1;
for ( int i =0 ;i < n ;i ++ ){
crnt *= a[i];
crnt%=mod;
bs [i] = crnt;
}
//cout << solve() <<endl;
return solve();
}
int updateX(int pos, int val) {
a[pos]=val;
return solve();
}
int updateY(int pos, int val) {
cost[pos]=val;
return solve();
}
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... |