만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

재잘거리는 시냇물

면접 대비

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

요약
스트림 목록에서 분기와 합류가 일어날 때 흐름을 나누거나 합치며 시뮬레이션하고, 마지막에 각 강의 흐름을 반올림해 출력한다.
난이도

쉬움10점 중 3점

유형
구현, 시뮬레이션, 배열
정답자
아직 제출이 없습니다

문제

산비탈을 따라 여러 개의 시냇물이 흘러내린다. 산비탈은 바위가 많아 시냇물은 여러 번 갈라졌다가 다시 합쳐진다. 산기슭에 이르면 몇 개의 시냇물이 강이 되어 흘러나온다. 각 강에 얼마만큼의 물이 흐르는지 계산하여라.

어떤 높이에서든 mm개의 시냇물이 있으며, 왼쪽부터 오른쪽으로 11번부터 mm번까지 번호가 매겨진다. 산비탈을 내려가는 동안 하나의 시냇물이 왼쪽 갈래와 오른쪽 갈래로 갈라져 전체 시냇물의 수가 11 늘어날 수도 있고, 두 시냇물이 합쳐져 전체 수가 11 줄어들 수도 있다. 갈라지거나 합쳐진 뒤에는 왼쪽부터 오른쪽 순서로 번호를 다시 매긴다. 시냇물은 항상 최소 하나 존재하며, 100100개를 넘지 않는다.

입력

첫 번째 줄에는 높은 고도에서의 초기 시냇물 개수 nn이 주어진다. 이어지는 nn개의 줄에는 왼쪽부터 오른쪽 순서로 각 시냇물의 유량이 주어진다. 산비탈을 내려가면서 갈라지는 지점과 합쳐지는 지점을 여러 번 만난다.

각 갈라짐(split) 지점은 세 줄로 주어진다.

  • 갈라짐을 나타내는 99
  • 갈라지는 시냇물의 번호(정수)
  • 갈라지는 시냇물의 유량 중 왼쪽 갈래로 흐르는 비율(00 이상 100100 이하의 정수, 퍼센트). 나머지는 오른쪽 갈래로 흐른다.

각 합쳐짐(join) 지점은 두 줄로 주어진다.

  • 합쳐짐을 나타내는 88
  • 바로 오른쪽 시냇물과 합쳐지는 시냇물의 번호(정수)

합쳐지는 두 시냇물의 유량은 더해진다. 마지막 갈라짐 또는 합쳐짐 지점 다음에는 입력의 끝을 나타내는 77이 한 줄에 주어진다.

출력

산기슭에 몇 개의 시냇물이 나타나며 각각의 유량이 얼마인지 구하여라. 강 11번부터 mm번까지의 유량을 가장 가까운 정수로 반올림하여(값이 정확히 0.50.5이면 올림) 공백 한 칸으로 구분해 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    3
    10
    20
    30
    99
    1
    50
    88
    3
    88
    2
    77
    
    예상 출력
    5 55