아래와 같은 모양의 두 개의 차트가 겹쳐있다고 생각하면 쉽다. 두 차트를 각각 A(구간), B(테스트 구간)라고 했을 때, B 차트가 A 차트보다 더 위에 있는 경우를 생각해보자. 그 경우가 제한 속도를 넘어간 것이다. 따라서, x축을 순차 순회(배열 순회)하며 단순히 B가 더 높은 경우에만 정답값을 최댓값 함수 max()
로 초기화하면 된다.
또한, 파이썬은 배열의 곱셈 연산을 허용하므로 배열 초기화에 활용하면 쉽게 두 리스트를 생성할 수 있다. 제한속도를 넘기지 않는 경우, 0을 출력해야 하므로 출력값을 초기에 0으로 설정한다는 것에 유의한다.
사진 출처:[https://demo.riamore.net/HTML5demo/chart/Docs/User%20Manual%20-%20html/line-chart.html]
import sys
input=sys.stdin.readline
a,b=[],[]
n,m=map(int,input().rstrip().split())
for _ in range(n):
d,v=map(int,input().rstrip().split())
a+=[v]*d
for _ in range(m):
d,v=map(int,input().rstrip().split())
b+=[v]*d
ans=0
for i in range(len(b)):
diff=b[i]-a[i]
if diff>0:
ans=max(ans,diff)
print(ans)