# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1004803 | magikarp23 | 말 (IOI15_horses) | C++17 | 1560 ms | 8028 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "horses.h"
using namespace std;
const int MAX_N = 500000 + 1;
const long long MOD = 1000000007; // 10^9 + 7
int X_store[MAX_N];
int Y_store[MAX_N];
int N_store;
long long modMul(long long a, long long b) {
long long result = 0;
a %= MOD;
while (b > 0) {
if (b % 2 == 1) {
result = (result + a) % MOD;
}
a = (a * 2) % MOD;
b /= 2;
}
return result;
}
long long calc_max_profit() {
long long max_profit = 0;
long long cumulative_growth = 1;
for (int i = 0; i < N_store; i++) {
cumulative_growth = modMul(cumulative_growth, X_store[i]);
long long current_profit = modMul(cumulative_growth, Y_store[i]);
if (current_profit > max_profit) {
max_profit = current_profit;
}
}
return max_profit;
}
int init(int N, int X[], int Y[]) {
N_store = N;
for (int i = 0; i < N; i++) {
X_store[i] = X[i];
Y_store[i] = Y[i];
}
return calc_max_profit();
}
int updateX(int pos, int val) {
X_store[pos] = val;
return calc_max_profit();
}
int updateY(int pos, int val) {
Y_store[pos] = val;
return calc_max_profit();
}
컴파일 시 표준 에러 (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... |