← Back to List

22188번: Тарифы ↗

Solutions

Python 3
871 B | 839 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 : 발신 전화 수
  
  l = [mii() for _ in range(n)] # c, t, p
  d = mii() # 통화 시간

  prices = []
  
  for c, t, pr in l:
    price = c * 100
    for i in d:
      if i >= t:      
        t2 = i // t + int(i % t > 0)
        price += t2 * pr
    prices.append(price)
  
  mn = min(prices)
  
  for i in range(n):
    if prices[i] == mn:
      p(i + 1)
      break
  
  
tc = 1

for t in range(1, tc+1):
  ret = solve()