아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

은행

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

요약
네 통화 각각의 잔여 한도만큼을 동시에 지급할 수 있는 상태에서 고객을 순서대로 처리할 수 있게 하는, 사전순으로 가장 작은 네 통화 준비금 벡터를 구한다.
난이도

어려움10점 중 9점

유형
그리디, 수학, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

바이트랜드에는 네 가지 화폐가 있다. 데나르, 프랑, 그로시, 탈러이다. 서로 환전할 수 없어서 이 나라 사람들에게는 큰 불편이다.

바이트랜드 비즈니스 은행(BBB)은 많은 신용 계약을 맺었는데, 화폐를 혼동하는 바람에 파산 위기에 놓였다. 모든 계약은 다음과 같이 동작한다.

  • 계약은 네 화폐 각각에 대해 고객의 신용 한도를 정한다.
  • 고객은 원할 때 언제든 어떤 화폐로든 신용의 일부를 요청할 수 있다. 은행에 기한은 없지만, 고객이 모든 화폐에서 한도를 넘지 않는 한 요청한 돈은 언젠가 반드시 지급되어야 한다.
  • 한도를 다 쓰지 않은 고객은 계속 추가로 요청할 수 있다.
  • 마지막에 고객은 빌린 돈을 모두 되갚는다. 여기에도 기한은 없지만 언젠가는 갚는다.
  • 고객이 한도를 전부 쓸 필요는 없으며, 이자나 수수료도 없다.

BBB는 모든 고객의 요구를 한꺼번에 맞출 수 없고, 어떤 고객도 원하는 돈을 전부 받기 전에는 아무것도 갚지 않는다. 따라서 BBB는 최악의 경우에도 고객을 한 명씩 차례로 처리할 수 있도록 각 화폐에 충분한 준비금을 보유해야 한다. 한 고객을 처리한다는 것은 네 화폐 모두에서 그 고객을 한도까지 채워 주는 것이며, 이는 현재 준비금이 그 고객의 남은 필요액(한도에서 현재 신용을 뺀 값)을 네 화폐에서 동시에 감당할 수 있을 때에만 가능하다. 한도까지 채워진 고객은 빌린 돈을 모두 되갚고, 그 돈은 준비금으로 돌아온다.

BBB는 바이트랜드 국립은행(BNB)에 도움을 청했다. BNB는 BBB가 모든 고객에게 빚을 갚게 만들기에 딱 충분한 준비금, 즉 화폐마다 하나씩 네 정수를 알고 싶어 한다. 이 준비금이면 어떤 순서로든 모든 고객을 처리할 수 있지만, 네 화폐 중 어느 하나라도 11을 줄이면(나머지 셋은 그대로 두고) 처리가 불가능해져야 한다.

이런 준비금은 여러 개일 수 있다. 답을 유일하게 만들기 위해 사전순으로 가장 작은 것을 출력한다. 즉 데나르 준비금을 먼저 최소화하고, 그다음 프랑, 그다음 그로시, 마지막으로 탈러 준비금을 최소화한다.

입력

첫째 줄에 고객 수 nn이 주어진다 (1≤n≤80001 \le n \le 8000). 고객은 11번부터 nn번까지 번호가 매겨진다.

이어지는 nn개의 줄에는 각각 여덟 개의 음이 아닌 정수 mi,1,mi,2,mi,3,mi,4,wi,1,wi,2,wi,3,wi,4m_{i,1}, m_{i,2}, m_{i,3}, m_{i,4}, w_{i,1}, w_{i,2}, w_{i,3}, w_{i,4}이 주어지며 0≤wi,j≤mi,j≤500000 \le w_{i,j} \le m_{i,j} \le 50000을 만족한다. 여기서 mi,jm_{i,j}는 신용 한도, wi,jw_{i,j}는 고객 ii의 현재 신용이고, j=1j=1은 데나르, j=2j=2는 프랑, j=3j=3은 그로시, j=4j=4는 탈러를 뜻한다.

출력

음이 아닌 네 정수를 한 줄에 공백 하나로 구분하여 출력한다. 순서대로 데나르, 프랑, 그로시, 탈러의 최소 준비금이다. 이 준비금은 BBB가 모든 고객에게 빚을 갚게 만들 수 있어야 하고, 네 값 중 어느 하나라도 11을 줄이면 부족해져야 한다. 그런 준비금이 여러 개이면 사전순으로 가장 작은 것을 출력한다(데나르 값을 먼저 비교하고, 그다음 프랑, 그로시, 탈러 순).

예제2

  1. 예제 1

    입력
    4
    3 2 1 2 0 2 0 1
    2 4 1 8 1 2 1 1
    3 2 0 3 1 0 0 1
    3 0 1 2 1 0 0 1
    
    예상 출력
    1 2 0 7
    
  2. 예제 2

    입력
    3
    4 4 4 4 1 1 1 1
    2 2 2 2 2 2 2 2
    5 1 5 1 0 0 0 0
    
    예상 출력
    2 1 2 1