Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define MAX 5001
- #define INF 18000001
- using namespace std;
- double arr[MAX];
- double dp[MAX];
- double min(double a , double b)
- {
- if(a < b)
- return a;
- return b;
- }
- int main()
- {
- ios::sync_with_stdio(0);
- int n;
- cin >> n;
- if(n % 2 == 0)
- cout << 1/0;
- for(int i = 0;i < n;i++)
- {
- cin >> arr[i];
- }
- if(n == 1)
- {
- cout << arr[0];
- return 0;
- }
- sort(arr , arr+n);
- dp[0] = arr[0];
- dp[1] = arr[0] / 2 + arr[1];
- dp[2] = min(dp[1] + arr[2] , arr[1] + arr[2]);
- for(int i = 3;i < n;i++)
- {
- 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])));
- }
- cout.precision(2);
- cout<<fixed << dp[n - 1];
- }
Advertisement
Add Comment
Please, Sign In to add comment