수도꼭지 물 붓기

면접 대비

시간 제한1초메모리 제한128 MB

요약
너비 1인 수조에 물이 초당 1 세제곱 단위로 들어오고, 높이가 주어진 격벽들이 세워져 있을 때 바깥쪽 격벽을 처음 넘치는 데 걸리는 시간을 구한다.
난이도

보통10점 중 7점

유형
시뮬레이션, 구현, 수학, 그리디
정답자
아직 제출이 없습니다

문제

수도꼭지가 길고 얇은 수조에 물을 붓고 있습니다. 수조 안에는 여러 개의 수직 칸막이(벽)가 세워져 있습니다. 수조는 처음에 비어 있고 바닥은 완전히 평평합니다. 물이 가장 왼쪽 칸막이 또는 가장 오른쪽 칸막이를 넘어 흘러넘치기까지 몇 초가 걸릴까요?

수도꼭지는 위치 x=0x = 0 바로 위에 있습니다. 칸막이들은 왼쪽으로 홀수 위치 x=−1,−3,−5,…x = -1, -3, -5, \ldots (가장 왼쪽은 leftx)에, 오른쪽으로 x=1,3,5,…x = 1, 3, 5, \ldots (가장 오른쪽은 rightx)에 있습니다. 각 칸막이는 수조의 바닥과 옆면에 수직으로 붙어 있고 높이는 제각각입니다. 수조의 길이는 leftx부터 rightx까지의 구간보다 길고, 수조의 바깥벽은 가장 높은 칸막이보다도 높으며, 폭은 어디서나 11단위입니다. 물은 수도꼭지에서 초당 11세제곱단위의 속도로 흘러나옵니다.

물은 이상적인 액체라고 가정합니다. 물은 항상 낮은 곳으로 흐르며, 더 이상 낮은 곳으로 흐를 수 없으면 모든 수평 방향으로 같은 속도로 퍼집니다.

입력

각 테스트 케이스는 두 정수 leftx(−1-1 이하의 홀수)와 rightx(11 이상의 홀수)로 시작합니다. 이어지는 값들은 각 칸막이의 높이(양의 정수)를 왼쪽에서 오른쪽 순서로 나열한 것입니다. 한 테스트 케이스의 칸막이 수는 10001000개를 넘지 않습니다. 입력은 두 개의 00이 적힌 줄로 끝나며, 이 줄은 처리하지 않습니다.

출력

각 테스트 케이스마다 물이 가장 왼쪽 또는 가장 오른쪽 칸막이를 처음으로 넘칠 때까지 걸리는 시간을 초 단위 정수로 한 줄에 출력합니다.

예제4

  1. 예제 1

    입력
    -1 1
    3 5
    -3 3
    4 3 2 1
    -3 5
    1 2 2 1 1
    0 0
    
    예상 출력
    6
    6
    8
    
  2. 예제 2

    입력
    -1 1
    2 9
    0 0
    
    예상 출력
    4
    
  3. 예제 3

    입력
    -1 1
    5 5
    0 0
    
    예상 출력
    10
    
  4. 예제 4

    입력
    -1 1
    1 1
    -1 3
    5 1 10
    0 0
    
    예상 출력
    2
    20