# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
274218 | Halit | Candies (JOI18_candies) | C++17 | 102 ms | 32128 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
scanf("%d", &n);
vector<long long> v;
for(int i = 0;i < n;++i){
long long c;
scanf("%lld", &c);
v.push_back(c);
}
vector< vector<long long> > dp(n+5, vector<long long>(n+5,-1));
function<long long(int, int)> DP = [&](int i, int j) -> long long{
if(i >= n)
return (j > 0 ? -1e9 : 0);
if(dp[i][j] != -1)
return dp[i][j];
long long d = DP(i+1,j);
if(j > 0)
d = max(DP(i+2, j-1) + v[i], d);
return dp[i][j] = d;
};
for(int i = 1;i <= (n+1)/2;++i)
cout << DP(0,i) << '\n';
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |