티스토리 뷰

#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;
}

'알고리즘 > Implementation' 카테고리의 다른 글

boj) 1021 회전하는 큐 (C++)  (0) 2020.02.17
boj) 5397 키로거 ( C / C++)  (0) 2020.02.15
boj, 백준 ) 2615 오목  (0) 2020.01.28
boj, 백준 ) 17143 낚시왕 ( C / C++ )  (0) 2020.01.08
BOJ) 1000. A+B (C / C++)  (0) 2019.11.12
댓글
«   2025/01   »
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
26 27 28 29 30 31
Total
Today
Yesterday