Guest User

Untitled

a guest
Jan 7th, 2018
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define MAX 5001
  3. #define INF 18000001
  4. using namespace std;
  5. double arr[MAX];
  6. double dp[MAX];
  7.  
  8. double min(double a , double b)
  9. {
  10. if(a < b)
  11. return a;
  12. return b;
  13. }
  14.  
  15. int main()
  16. {
  17. ios::sync_with_stdio(0);
  18. int n;
  19. cin >> n;
  20. if(n % 2 == 0)
  21. cout << 1/0;
  22. for(int i = 0;i < n;i++)
  23. {
  24. cin >> arr[i];
  25. }
  26.  
  27. if(n == 1)
  28. {
  29. cout << arr[0];
  30. return 0;
  31. }
  32. sort(arr , arr+n);
  33. dp[0] = arr[0];
  34. dp[1] = arr[0] / 2 + arr[1];
  35. dp[2] = min(dp[1] + arr[2] , arr[1] + arr[2]);
  36. for(int i = 3;i < n;i++)
  37. {
  38. dp[i] = min((dp[i-2] + arr[i-1] /2+arr[i]) , min((dp[i-3] + arr[i-1]+arr[i]) , (dp[i-1] + arr[i])));
  39.  
  40. }
  41. cout.precision(2);
  42. cout<<fixed << dp[n - 1];
  43. }
Advertisement
Add Comment
Please, Sign In to add comment