# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
93594 | dragonslayerit | 수열 (APIO14_sequence) | C++14 | 2062 ms | 6776 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <cstdio>
#include <stdint.h>
#include <algorithm>
int64_t as[100005];
int64_t prefix[100005];
int64_t dp[201][100005];
int64_t from[201][100005];
int main(){
int64_t N,K;
scanf("%ld %ld",&N,&K);
for(int64_t i=1;i<=N;i++){
scanf("%ld",&as[i]);
prefix[i]=as[i]+prefix[i-1];
}
for(int64_t k=1;k<=K+1;k++){
for(int64_t i=1;i<=N;i++){
for(int64_t j=0;j<i;j++){
int64_t to=dp[k-1][j]+prefix[j]*(prefix[i]-prefix[j]);
if(dp[k][i]<=to){
dp[k][i]=to;
from[k][i]=j;
}
}
//printf("dp[%ld][%ld]=%ld\n",k,i,dp[k][i]);
}
}
printf("%ld\n",dp[K][N]);
for(int64_t k=K;k>0;k--){
printf("%ld",N=from[k][N]);
if(k>1) printf(" "); else printf("\n");
}
return 0;
}
컴파일 시 표준 에러 (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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |