Submission #1206409

#TimeUsernameProblemLanguageResultExecution timeMemory
1206409peraHorses (IOI15_horses)C++20
34 / 100
1596 ms12168 KiB
#include<bits/stdc++.h> #include "horses.h" #define LL long long using namespace std; const int N_MAX = 5E5 + 1; const LL mod = 1E9 + 7; const __int128 oo = 1E9; int n; vector<LL> x(N_MAX) , y(N_MAX); int calc(){ int j = 0; __int128 prd = 1; for(int i = n - 1;i >= 0;i --){ j = i; if(__int128(x[i]) * prd > oo){ break; } prd *= x[i]; } prd = 1; __int128 best = 0; for(int i = j;i < n;i ++){ prd *= __int128(x[i]); __int128 A = __int128(prd) * __int128(y[i]); best = max(best , A); } best %= mod; for(int i = 0;i < j;i ++){ best = x[i] * best % mod; } best %= mod; return (int)best; } int init(int N, int X[], int Y[]) { n = N; for(int i = 0;i < N;i ++){ x[i] = X[i]; y[i] = Y[i]; } return calc(); } int updateX(int pos, int val) { x[pos] = val; return calc(); } int updateY(int pos, int val) { y[pos] = val; 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...