Advertisement
SuitNdtie

CUBE-104: Tasty Chocolate

May 26th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.58 KB | None | 0 0
  1. #include<stdio.h>
  2. int const N = 1010;
  3. int arr[N];
  4. int n;
  5.  
  6. int min(int a,int b){
  7.     return (a < b ? a : b);
  8. }
  9.  
  10. int dp[N][3010];
  11.  
  12. int cal(int i ,int b){
  13.     if(b>3000)return 1e9;  
  14.     if(i > n){
  15.         return 0;
  16.     }
  17.     if(dp[i][b] != -1)return dp[i][b];
  18.     if(arr[i] <= b){
  19.         return dp[i][b] = cal(i+1,b+1) + 1;
  20.     }
  21.     return dp[i][b] = min(cal(i+1,arr[i]) , cal(i+1,b+1) + 1);
  22. }
  23.  
  24. int main()
  25. {
  26.     for(int i = 0 ; i < N ; i ++)for(int j = 0 ; j < 3010 ; j ++)dp[i][j] = -1;
  27.     scanf("%d",&n);
  28.     for(int i = 1 ; i <= n ; i ++){
  29.         scanf("%d",&arr[i]);
  30.     }
  31.     printf("%d",cal(1,0));
  32.     return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement