Submission #795498

#TimeUsernameProblemLanguageResultExecution timeMemory
795498jasminHorses (IOI15_horses)C++17
17 / 100
1574 ms8148 KiB
#include "horses.h" #include<bits/stdc++.h> using namespace std; const long long MOD=1e9+7; int n=0; vector<int> x; vector<int> y; bool bigger(pair<int,int> a, pair<int,int> b){ return a.first*b.second > a.second*b.first; } int solveSlow(){ long long p=1; bool mod=false; pair<int,int> maxi={1, 1}; int ind=n-1; for(int i=n-1; i>=0; i--){ if(!mod){ if(bigger({y[i], p}, maxi)){ maxi={y[i], p}; ind=i; } } p*=x[i]; if(p>MOD){ p%=MOD; mod=true; } } int ans=1; for(int i=0; i<=ind; i++){ ans *= x[i]; ans%=MOD; } ans*=y[ind]; ans%=MOD; return ans; } int init(int N, int X[], int Y[]) { n=N; x.assign(n, 0); y.assign(n, 0); for(int i=0; i<N; i++){ x[i]=X[i]; y[i]=Y[i]; } return solveSlow(); } int updateX(int pos, int val) { x[pos]=val; return solveSlow(); } int updateY(int pos, int val) { y[pos]=val; return solveSlow(); }
#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...