https://www.acmicpc.net/problem/1049
가장 저렴한 세트 가격과 낱개 가격을 찾는다.
낱개 가격보다 세트가격이 더 싸면 모두 세트를 사버린다
세트의 개당 가격이 낱개 가격보다 싸면 세트 + 필요한 낱개를 산다.
(이때 세트 하나를 추가하는게 남은 낱개를 사는것 보다 저렴하다면 세트로 산다.)
세트보다 낱개가 훨씬 저렴하다면 모두 낱개로 산다.
import sys
import math
input = sys.stdin.readline
n,m = map(int,input().split())
info = [list(map(int,input().split())) for _ in range(m)]
info = list(map(list, zip(*info)))
min_set_price = min(info[0])
min_price = min(info[1])
answer = 0
# 세트가격이 낱개 가격보다 저렴할 경우
if min_set_price <= min_price:
answer += math.ceil(n/6) * min_set_price
elif min_set_price/6 <= min_price: # 세트가 더 저렴한 경우
answer += min_set_price * (n // 6)
n -= 6 * (n//6)
answer = min(answer + math.ceil(n/6) * min_set_price, answer + n * min_price)
else: # 낱개가 저렴한 경우
answer = n*min_price
print(answer)