Algorithm Problems

[백준] 11971.py - 속도위반 (USACO Bronze)

WakaraNai 2021. 1. 15. 00:24
728x90
반응형

www.acmicpc.net/problem/11971

 

11971번: 속도 위반

예를 들어 도로가 3구역 [(40km, 75km/h), (50km, 35km/h), (10km, 45km/h)] 이고. 연정이가 달린 3구역 [(40km, 76km/h), (20km, 30km/h), (40km, 40km/h)] 이라면, 처음 0 ~ 40km 영역에서 1km/h 만큼 위반했으나 60km ~ 90km 사이에

www.acmicpc.net

 

n, m = map(int, input().split())
limit = [ list(map(int, input().split())) for _ in range(n) ]
speed  = [ list(map(int, input().split())) for _ in range(m) ]

for i in range(1,n):
    limit[i][0] += limit[i-1][0]
for i in range(1,m):
    speed[i][0] += speed[i-1][0]
#print( limit, speed )

def checkSpeed( limit, accel ):
    if limit < accel:
        return accel-limit
    return 0


result = 0
l_idx, s_idx = 0, 0
while True:
    

    if (l_idx>=n and s_idx>=m):
        break
    #print(result, limit[l_idx][1], speed[s_idx][1])
    #print(l_idx, s_idx)
    x = checkSpeed(limit[l_idx][1],speed[s_idx][1])
    result = x>result and x or result #삼항 연산자
   
    if limit[l_idx][0] == speed[s_idx][0]:
        l_idx += 1
        s_idx += 1
    elif limit[l_idx][0] < speed[s_idx][0] and l_idx<n:
        l_idx += 1
    elif limit[l_idx][0] > speed[s_idx][0] and s_idx<m: 
        s_idx += 1
    
   

print(result)  
        
        
728x90
반응형