1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| // 더 많은 정보는 42jerrykim.github.io 에서 확인하세요.
#include <bits/stdc++.h>
using namespace std;
int main(){ios::sync_with_stdio(false);cin.tie(nullptr);
int n; long long B,C; if(!(cin>>n>>B>>C)) return 0;
vector<long long>a(n+2); for(int i=0;i<n;++i) cin>>a[i];
long long ans=0;
if(B<=C){
for(int i=0;i<n;++i) ans += a[i]*B;
cout<<ans<<'\n'; return 0;
}
for(int i=0;i<n;++i){
if(a[i+1]>a[i+2]){
long long t2=min(a[i], a[i+1]-a[i+2]);
if(t2>0){a[i]-=t2; a[i+1]-=t2; ans += (B+C)*t2;}
}
long long t3=min(a[i], min(a[i+1], a[i+2]));
if(t3>0){a[i]-=t3; a[i+1]-=t3; a[i+2]-=t3; ans += (B+2*C)*t3;}
long long t2=min(a[i], a[i+1]);
if(t2>0){a[i]-=t2; a[i+1]-=t2; ans += (B+C)*t2;}
if(a[i]>0){ ans += B*a[i]; a[i]=0; }
}
cout<<ans<<'\n';
return 0;}
|