# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
591965 | l_reho | 말 (IOI15_horses) | C++14 | 27 ms | 26300 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
long long dp[1001][2];
int init(int N, int X[], int Y[]) {
// dp.assign(N, vector<long long>(1000, 0));
vector<long long> pref(N+1, 0);
pref[0] = 1;
for(int i = 1; i <= N; i++)
pref[i] = pref[i-1] * X[i-1];
vector<long long> prod(N+1, 0);
prod[0] = 1;
for(int i = 1; i <= N; i++) prod[i] = prod[i-1]*X[i-1];
for(int i = 0; i < N; i++){
for(int j = 0; j <= i; j++){
long long K = prod[i+1]/prod[j];
dp[i+1][0] = max(dp[i+1][0], dp[j][0] + (K-1)*Y[i]);
dp[i+1][1] = max(dp[i+1][1], dp[j][0] + K*Y[i]);
// cout<<i+1<<" "<<dp[i+1][0]<<" "<<dp[i+1][1]<<endl;
}
}
long long ans = 0;
for(int i = 0; i <= N; i++){
ans = max(ans, dp[i][1]);
}
return ans;
}
int updateX(int pos, int val) {
return 0;
}
int updateY(int pos, int val) {
return 0;
}
Compilation message (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... |