[Codeforces 116] A. Tram

WBeen·2021년 2월 25일

Codeforces

목록 보기
22/26

해석이 이상할 수 있습니다.
이상한 부분은 말씀해 주시면 수정하겠습니다.

문제:https://codeforces.com/problemset/problem/116/A

시간 제한: 2s
메모리 제한: 256MB

Linear 왕국은 정확히 하나의 tram 라인이 있다. 그것은 n개의 정류장이 있다, 1부터 n까지 tram이 움직이는 순서에 따라. i번째 정류장에서 ai승객들이 나간다, bi 승객들이 들어오는 동안. tram은 비어있다 그것이 첫 정류장에 도착하기 전에. 또한, 트램이 마지막 정류장에 도착했을 때, 모든 승객은 나가고 그래서 그것은 비어있게 된다.


너는 트램의 최소 용량을 계산해라 사람들이 안에 있는 수와 같은. 트램은 언제든지 그 용량을 초과하지 않는다. Note 각각 정류장에 모든 승객들이 나간다 어떤 승객들이 트램에 들어가기 전에.

[입력]
첫 줄에 정수 n이 하나 포함된다 (2 ≤ n ≤ 1000) - 트램의 정류장 수


다음 n개 줄에, 각각 두 정수 ai , bi가 포함된다(0 ≤ ai, bi ≤ 1000) - 승객들의 수 i번째 정류장에서 트램에서, 그리고 i번째 정류장에서 들어오는. 정류장은 주어진다 첫번째부터 마지막까지 트램 움직임에 따라.

-> 나가는 사람들의 숫자 정류장에 나가는 사람의 숫자는 당장 트램안에 사람들의 총합을 넘지 않는다 그것은 정류장에 도착하기전.
a1=0 을 의미한다.
-> 마지막 정류장에, 모든 승객은 나간다 트램에서 그리고 그것은 비어있게 된다.
-> 마지막 정류장에서 들어오는 승객은 없다. 즉, bn=0

[출력]
정수 하나를 출력 가능한 트램의 최소용량.(0 허용)

[Note]
첫번째 예시, 용량 6은 충분하다.


-> 첫 정류장에서, 도착하기전 승객 0명이 안에 있다. 그 때, 3명의 승객이 tram에 들어오고, 그리고 트램 안에 승객은 3이된다.
-> 두번째 정류장, 2명에 승객이 나가고(승객 1명 안에 남아있음). 그 때, 5명이 트램 안에 들어오고. 그곳에 승객 6명이 지금 트램안에 있다-> 세번째 정류장, 4명이 나가고 (2명 남아있음). 그 때 ,2명이 들어오고 4명이 트램에 남게된다.
-> 마지막으로 모든 남은 승객들이 트램 밖으로 나간다. 승객은 트램안에 없다, 조건과 맞다.

트램안에 승객수가 6을 넘지않기 때문에, 용량은 6이면 충분하다. 더욱 그것은 불가능하다 6보다 작은것이. 따라서 6이 정답

[풀이]

tram이 n번에 정류장에 멈출때마다 승객 수를 ai만큼 빼고 bi만큼 더해준다. 바뀐 승객 값과 승객이 최대로 들어왔을 때 max값을 비교하여 max보다 현재 승객이 더 많다면 max=승객수로 갱신해준다.
그렇게 마지막 정류장까지 갔을 때 max값이 tram에 용량이 된다.

[코드]
https://github.com/Woobeen906/Codeforces/blob/main/116-A.cpp

profile
Front-end 개발자로 가는 길을 기록

0개의 댓글