Skip to content

Museum visitor flow analysis

1. Problem

박물관에서는 시간대별 입장객과 퇴장객을 기록하여 현재 관람 중인 인원과 혼잡도를 관리한다.

박물관이 문을 열었을 때 관람객이 없다고 가정한다. 시간대별 입장객 수와 퇴장객 수가 주어졌을 때, 다음 정보를 계산하는 프로그램을 작성하시오.

  • 모든 시간대의 입장객 수 합계
  • 모든 시간대의 퇴장객 수 합계
  • 관람객이 가장 많았던 순간의 인원
  • 관람객이 가장 많았던 시간대 번호

각 시간대에는 입장객이 먼저 들어오고, 그다음 퇴장객이 나간다. 퇴장객 수는 해당 시간대 입장 처리 후 박물관 안에 있는 인원보다 많지 않다.

관람객이 가장 많았던 인원이 여러 시간대에 기록되면 가장 먼저 해당 인원에 도달한 시간대 번호를 출력한다. 시간대 번호는 첫 번째 시간대를 1번으로 시작한다.

입력

첫째 줄에 시간대의 수 (N)이 주어진다.

다음 (N)개의 줄에는 각 시간대의 입장객 수 (A)와 퇴장객 수 (B)가 공백으로 구분되어 주어진다.

출력

첫째 줄에 총 입장객 수를 출력한다.

둘째 줄에 총 퇴장객 수를 출력한다.

셋째 줄에 관람객이 가장 많았던 순간의 인원을 출력한다.

넷째 줄에 해당 인원을 처음 기록한 시간대 번호를 출력한다.

제한사항

  • (1 \leq N \leq 100)
  • (0 \leq A \leq 1000)
  • (0 \leq B \leq 1000)
  • 모든 시간대에서 퇴장객 수는 입장 처리 후 박물관 안에 있는 인원보다 많지 않다.

2. Input example

Example 1

5
10 2
5 3
8 4
2 10
6 5

Example 2

4
3 0
2 1
0 2
4 3

3. Output example

3.1. Example 1

31
24
16
3

3.2. Example 2

9
6
4
2

4. Explanation

4.1. Example 1

시간대별 입장객 수의 합계는 (10 + 5 + 8 + 2 + 6 = 31)명이다.

시간대별 퇴장객 수의 합계는 (2 + 3 + 4 + 10 + 5 = 24)명이다.

시간대별 입장 처리 후 퇴장 처리까지 마친 관람객 수는 다음과 같다.

  • 1번 시간대: (0 + 10 - 2 = 8)명
  • 2번 시간대: (8 + 5 - 3 = 10)명
  • 3번 시간대: (10 + 8 - 4 = 14)명
  • 4번 시간대: (14 + 2 - 10 = 6)명
  • 5번 시간대: (6 + 6 - 5 = 7)명

단, 3번 시간대에는 입장객이 들어온 직후 18명이 박물관 안에 있었다. 따라서 가장 많았던 인원은 18명이고, 해당 시간대는 3번이다.

4.2. Example 2

총 입장객 수는 (3 + 2 + 0 + 4 = 9)명이다.

총 퇴장객 수는 (0 + 1 + 2 + 3 = 6)명이다.

각 시간대의 입장 처리 직후 관람객 수는 3명, 5명, 4명, 7명이다. 퇴장 처리까지 고려하면 가장 많은 인원은 4명이며, 처음 해당 인원에 도달한 시간대는 2번이다.

5. Answer

n = int(input())

current = 0
total_in = 0
total_out = 0
max_visitors = 0
max_time = 0

for i in range(1, n + 1):
    a, b = map(int, input().split())

    total_in += a
    total_out += b

    current += a

    if current > max_visitors:
        max_visitors = current
        max_time = i

    current -= b

    if current > max_visitors:
        max_visitors = current
        max_time = i

print(total_in)
print(total_out)
print(max_visitors)
print(max_time)