← Back to List

5155번: Gadget Purchases ↗

Solutions

Python 3
1.0 KB | 981 chars
import sys
from math import sqrt, pi, sin, factorial, ceil, floor
from datetime import datetime, timedelta
sys.setrecursionlimit(10**7)

BLANK = " "

#inp = input
inp = lambda : sys.stdin.readline().rstrip()
mii = lambda x = BLANK : [*map(int,inp().split(x))]
mfi = lambda x = BLANK : [*map(float,inp().split(x))]
ii = lambda : int(inp())
fi = lambda : float(inp())
p = print


def solve():
  n, m = mii() # n: 환자수, m: 기계 수
  machines = [mii() for _ in range(m)]

  ans = []
  cnt = {}
  
  for i in range(1, m + 1):
    cnt[i] = 0
  
  for _ in range(n):
    cnt[ii()] += 1
  
  # 구매비용, 사용비용, 최대 사용 횟수, 금액
  
  for i in range(1, m + 1):
    pc, c, u, r = machines[i - 1]
    
    use_cnt = min(u, cnt[i])
    
    plus = r * use_cnt
    minus = pc + c * use_cnt
    
    if plus > minus:
      ans.append(i)
  
  return ans
  
  
if __name__ == "__main__":
  tc = ii()

  for t in range(1, tc+1):
    ret = solve()
    
    p(f"Data Set {t}:")
    for i in ret:
      p(i)
    p()