Advertisement
Farjana_akter

Untitled

Feb 12th, 2020
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int dp[100][100],arr[10000+5];
  4.  
  5. int dpcut(int suru,int sesh)
  6. {
  7. if(suru+1==sesh)
  8. {
  9. return dp[suru][sesh]=0;
  10. }
  11. else if(dp[suru][sesh]!=-1)
  12. {
  13. return dp[suru][sesh];
  14. }
  15. else
  16. {
  17. int mn=1e9,i;
  18. for(i=suru+1; i<sesh; i++)
  19. {
  20. mn=min(mn,(dpcut(suru,i)+dpcut(i,sesh)+arr[sesh]-arr[suru]));
  21. }
  22. return dp[suru][sesh]=(mn);
  23. }
  24. }
  25.  
  26. int main()
  27. {
  28. int len,i,j,k,cut,res;
  29. while(cin>>len && len)
  30. {
  31. cin>>cut;
  32. arr[0]=0,arr[cut+1]=len;
  33. for(i=1; i<=cut; i++)
  34. cin>>arr[i];
  35. memset(dp,-1,sizeof(dp));
  36. res=dpcut(0,cut+1);
  37. cout<<"The minimum cutting is "<<res<<"."<<endl;
  38. }
  39. return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement