제출 #709905

#제출 시각아이디문제언어결과실행 시간메모리
709905ssense말 (IOI15_horses)C++17
0 / 100
1574 ms10512 KiB
#include <bits/stdc++.h> #include "horses.h" using namespace std; #define MOD 1000000009 int ng; vector<int> xg; vector<int> yg; int init(int n, int* x, int* y) { ng = n; for(int i = 0; i < n; i++) { xg.push_back(x[i]); yg.push_back(y[i]); } int produs = 1; int now = ng-1; for(; now >= 0; now--) { produs*=xg[now]; if(produs >= 1e9) { break; } } now = max(now, 0); long long mx = 0, idx = 0; int pr = 1; for(int i = now; i < ng; i++) { pr*=xg[i]; if(mx < pr*yg[i]) { mx = pr*yg[i]; idx = i; } } mx%=MOD; for(int i = 0; i < idx-1; i++) { mx*=xg[i]; mx%=MOD; } return (int)mx; } int updateX(int pos, int val) { xg[pos] = val; int produs = 1; int now = ng-1; for(; now >= 0; now--) { produs*=xg[now]; if(produs >= 1e9) { break; } } now = max(now, 0); long long mx = 0, idx = 0; int pr = 1; for(int i = now; i < ng; i++) { pr*=xg[i]; if(mx < pr*yg[i]) { mx = pr*yg[i]; idx = i; } } mx%=MOD; for(int i = 0; i < idx-1; i++) { mx*=xg[i]; mx%=MOD; } return (int)mx; } int updateY(int pos, int val) { yg[pos] = val; int produs = 1; int now = ng-1; for(; now >= 0; now--) { produs*=xg[now]; if(produs >= 1e9) { break; } } now = max(now, 0); long long mx = 0, idx = 0; int pr = 1; for(int i = now; i < ng; i++) { pr*=xg[i]; if(mx < pr*yg[i]) { mx = pr*yg[i]; idx = i; } } mx%=MOD; for(int i = 0; i < idx-1; i++) { mx*=xg[i]; mx%=MOD; } return (int)mx; }
#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...