알고리즘/Implementation
boj, 백준 ) 1049 기타줄 (C++)
KIBBOMI
2020. 1. 28. 12:49
#include <iostream>
#include <algorithm>
using namespace std;
int line_set[100];
int line_single[100];
int main()
{
int n, m;
cin >> n >> m;
for (int i = 0; i < m; ++i)
cin >> line_set[i] >> line_single[i];
sort(line_set, line_set + m);
sort(line_single, line_single + m);
int ret = 0;
if (line_set[0] < line_single[0] * 6)
{
//세트로 사는게 이득
if (n % 6 == 0)
{
int num = n / 6;
ret = num * line_set[0];
}
else
{
//최대한 세트로 사고 나머지는 낱개로삼.
// 그런데 낱개 5개 vs 세트 6개 이것도 구분해야함.
int singlenum = n % 6; //낱개로 사야하는 item수
if (singlenum * line_single[0] > line_set[0])
{
//갯수는 초과되지만 세트가 더 저렴.
int num = n / 6 +1;
ret = num * line_set[0];
}
else
{
int num = n / 6;
ret = num * line_set[0];
ret += singlenum * line_single[0];
}
}
}
else
{
//낱개로 사는게 이득
ret = line_single[0] * n;
}
cout << ret;
return 0;
}