File tree Expand file tree Collapse file tree 1 file changed +47
-5
lines changed Expand file tree Collapse file tree 1 file changed +47
-5
lines changed Original file line number Diff line number Diff line change 1
- // Authored by : BaaaaaaaaaaarkingDog
1
+ // Authored by : HJPark
2
2
// Co-authored by : -
3
- // http://boj.kr/****************
3
+ // http://boj.kr/0d6a75ae9ed14455830186bc75293920
4
4
#include < bits/stdc++.h>
5
5
using namespace std ;
6
+ using ll = long long ;
6
7
7
- int main (void ){
8
+ ll n, a, b, c, d;
9
+ ll ans = LLONG_MAX;
10
+
11
+ ll gcd (ll a, ll b) {
12
+ while (b != 0 ) {
13
+ ll r = a % b;
14
+ a = b;
15
+ b = r;
16
+ }
17
+ return a;
18
+ }
19
+
20
+ ll lcm (ll a, ll b) {
21
+ return a * b / gcd (a, b);
22
+ }
23
+
24
+ int main (void ) {
8
25
ios::sync_with_stdio (0 );
9
26
cin.tie (0 );
10
-
11
- }
27
+
28
+ cin >> n >> a >> b >> c >> d;
29
+
30
+ if (a * d > b * c) {
31
+ swap (a, c);
32
+ swap (b, d);
33
+ }
34
+
35
+ ll lst = lcm (a, c);
36
+
37
+ for (ll i = 0 ; i < (lst / a); i++) {
38
+ ll cost = i * b;
39
+ if (n - i * a > 0 ) cost += (((n - i * a - 1 ) / c) + 1 ) * d;
40
+ ans = min (ans, cost);
41
+ }
42
+
43
+ cout << ans;
44
+ }
45
+
46
+ /*
47
+ 1 송이당 가격이 더 비싼 것을 a, b로 만든다.
48
+ a와 c의 최소공배수 lst를 구한다.
49
+ a 장미는 lst/a 보다 적게 사야한다.
50
+ a 장미를 lst/a 이상 사는 경우는 c 장미를 통해서 더 싸게 구매할 수 있기 때문이다.
51
+ a = 0, 1,...,lst/a - 1 일 때 총 비용을 구한다.
52
+ a 장미를 i개 구매한 뒤 부족한 장미 (n-i*a)개는 c 장미를 통해서 채운다.
53
+ */
You can’t perform that action at this time.
0 commit comments