티스토리 뷰
수학문제다
가성비 좋아하는 사람을 맞출 수 있는 문제다 굿
우선 최소라는 말에 집중을 하자
처음보면 세번째 예제가 왜 저가격이 나오는지 이해가 안될수있다
하지만 생각해보면 양념 후라이드 따로사는거보다
저기서는 반반치킨을 200000 사는게 이득이다
결국 X,Y개중에 적은개수만큼은 (양념,후라이드)개를 살지 (반반*2)개를 살지 정하고
남은 숫자들 중에서도 양념따로 후라이드 따로사는것과 반반*2로사는걸 비교해보면 된다!
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include <iostream>
#include <algorithm>
using namespace std;
#define ll long long
ll A,B,C,X,Y;
int main(){
scanf(" %lld %lld %lld %lld %lld",&A,&B,&C,&X,&Y);
ll first = min(X,Y);
ll ans = min(A*(X-first) + B*(Y-first),C*2*max(X-first,Y-first));
if(A+B>C*2) ans+=first*2*C;
else ans+=A*first + B*first;
printf("%lld\n",ans);
}
|
'알고리즘 > BOJ' 카테고리의 다른 글
[백준] 2590 색종이 (0) | 2020.02.04 |
---|---|
[백준] 1655 가운데를 말해요 (0) | 2020.02.03 |
[백준] 16988 Baaaaaaaaaduk2 (Easy) (0) | 2020.02.02 |
[백준] 17071 숨바꼭질 5 (0) | 2020.02.02 |
[백준] 17087 숨바꼭질 6 (0) | 2020.02.02 |
댓글