← Back to List

9897번: Lamp ↗

Solutions

Python 3
925 B | 901 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():
  L, G, R = mii()
  # 램프 수, 경비원 수, 총 순찰 횟수
  
  guards = [inp().split() for _ in range(G)]
  
  plans = [inp() for _ in range(R)]
  
  lamp = [0] * (L + 1)
  
  guard_idx = {}
  
  for i in range(G):
    guard_idx[guards[i][0]] = i
  
  for plan_name in plans:
    guard = guards[guard_idx[plan_name]]
    
    idx = int(guard[1])
    step = int(guard[2])
  
    while idx <= L:
      lamp[idx] = 1 - lamp[idx]
      
      idx += step
    
  p(sum(lamp))
  
  
tc = 1

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