# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
70465 | Diuven | 오렌지 출하 (JOI16_ho_t1) | C++14 | 139 ms | 5616 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <cstdio>
typedef long long ll;
const int inf=2e9;
const ll linf=2e18;
ll min(ll a, ll b){ return a<b ? a : b; }
ll max(ll a, ll b){ return a>b ? a : b; }
int n, m, k, A[20010];
ll D[20010];
ll d(int i){
if(D[i]>=0) return D[i];
D[i]=linf;
for(int s=1, a=-inf, b=inf; s<=m; s++){
if(i<s) break;
a=max(a, A[i-s+1]), b=min(b, A[i-s+1]);
D[i]=min(D[i], d(i-s)+k+s*ll(a-b));
}
return D[i];
}
int main(){
scanf("%d%d%d", &n, &m, &k);
for(int i=1; i<=n; i++) scanf("%d", A+i);
for(int i=1; i<=n; i++) D[i]=-1;
D[0]=0;
printf("%lld\n", d(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... |