Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<iomanip>
- using namespace std;
- double v[1001],s[1001];
- int n;
- double s2(int i1)
- {
- int i2=i1+1;
- if(v[i1]>v[i2])
- return v[i1]+v[i2]/2.;
- return v[i2]+v[i1]/2.;
- }
- double s3(int i1)
- {
- double a=v[i1],b=v[i1+1],c=v[i1+2];
- if(a>b) swap(a,b);
- if(c<a) swap(a,c);
- return b+c;
- }
- int main()
- {
- cin>>n;
- for(int i=1;i<=n;++i) cin>>v[i];
- s[1]=v[1];
- s[2]=min(s[1]+v[2],s2(1));
- for(int i=3;i<=n;++i)
- s[i]=min(s[i-1]+v[i],min(s[i-2]+s2(i-1),s[i-3]+s3(i-2)));
- cout<<fixed<<setprecision(1)<<s[n];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement