Submission #866322

#TimeUsernameProblemLanguageResultExecution timeMemory
866322JakobZorzHorses (IOI15_horses)C++14
17 / 100
1584 ms23936 KiB
#include<iostream> #include<math.h> #include"horses.h" using namespace std; typedef long long ll; typedef long double ld; const int MOD=(int)1e9+7; int n; int x[500000]; ld xlog[500000]; int y[500000]; ld ylog[500000]; int calc(){ ld curr=1; ld mx=0; int maxi=0; for(int i=0;i<n;i++){ curr+=xlog[i]; if(mx<curr+ylog[i]){ mx=curr+ylog[i]; maxi=i; } } int res=1; for(int i=0;i<=maxi;i++){ res*=x[i]; res%=MOD; } return res*y[maxi]%MOD; } int init(int N,int X[],int Y[]){ n=N; for(int i=0;i<n;i++){ x[i]=X[i]; xlog[i]=log(x[i]); y[i]=Y[i]; ylog[i]=log(y[i]); } return calc(); } int updateX(int pos,int val){ x[pos]=val; xlog[pos]=log(x[pos]); return calc(); } int updateY(int pos,int val){ y[pos]=val; ylog[pos]=log(y[pos]); return calc(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...