// // main.c // centsaving // // Created by Haoyang Gu on 15-2-2. // Copyright (c) 2015年 Haoyang Gu. All rights reserved. // #include #include #define N 2000 #define D 20 #define inf 99999999 int prize[N]; int cost[N+1][D+1]; int min(int i, int j){ if(i<=j) return i; else return j; } int rnd (int p){ if((p%10)>=5) return p-p%10+10; else return p-p%10; } int main() { int n, d, i, j, k, s; scanf("%d %d\n", &n, &d); for (i = 0; i < n; i++) scanf("%d", &prize[i]); for(i=0;i<=n;i++) cost[0][i]=0; for (i = 0; i <= n; i++) for (j = 0; j <= d; j++) { if (j == 0) { s = 0; for (k = 0; k < i; k++) s += prize[k]; cost[i][j] = rnd(s); } else { s = 0; cost[i][j] = inf; for (k = i-1; k >= 0; k--) { s += prize[k]; cost[i][j] = min(cost[i][j], rnd(s) + cost[k][j-1]); } } } printf("%d\n", cost[n][d]); return 0; }