# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
206137 | awlintqaa | 말 (IOI15_horses) | C++14 | 88 ms | 17020 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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+1;
break;
}
crnt*=a[i];
}
crnt=1;
ll mx=0;
ll CRNT = 0 ;
ll id=0;
for(ll i=st;i<n;i++){
crnt*=a[i];
if(crnt*cost[i] > mx ){
mx=crnt*cost[i];
id=i;
CRNT = crnt;
}
}
if(st && CRNT * cost[id] < cost[st-1]){
crnt = bs [st-1];
return (crnt * cost[id]%mod ) %mod;
}
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();
}
컴파일 시 표준 에러 (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... |