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

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

배달원

면접 대비

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

요약
시간 순서대로 들어오는 주문을 가장 빨리 처리할 수 있는 한가한 배달원에게 배정하고, 모두 바쁘면 주문을 버리면서 배달원별 총 수익을 계산한다.
난이도

보통10점 중 5점

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

문제

어느 음식 배달 회사에 배달원 NN명이 근무한다. 모든 배달원은 같은 시각, 즉 아침(시각 t=0t = 0분)에 근무를 시작한다. 하루 동안 주문이 들어오며, 각 주문에 대해 다음 정보가 주어진다.

  • 주문이 접수된 시각(분)
  • 그 주문을 완료했을 때 배달원이 받는 금액
  • 각 배달원이 그 주문을 완료하는 데 걸리는 시간(분). 한 주문에 대한 각 배달원의 소요 시간은 모두 서로 다르다.

주문은 그 시점에 손이 빈(다른 주문을 수행하고 있지 않은) 배달원 중에서 그 주문을 가장 빨리 완료할 수 있는 배달원에게 배정된다. 만약 그 시점에 모든 배달원이 바쁘다면, 손님은 다른 회사에 의뢰하므로 그 주문은 사라진다.

배달원은 그날 자신에게 배정된 모든 주문을 완료하면 퇴근한다.

각 배달원이 하루 동안 얼마를 버는지 계산하라.

어떤 배달원이 주문을 완료하는 시각이 새 주문의 접수 시각과 정확히 같다면, 그 배달원은 새 주문 시점에 손이 빈 것으로 간주한다.

입력

첫째 줄에 배달원 수 NN과 주문 수 MM이 주어진다. 이어지는 MM개의 줄에 각 주문의 정보가 주어진다.

  • tt — 근무 시작 시점부터 주문이 접수된 시각(분). 모든 주문의 접수 시각은 서로 다르며, 증가하는 순서로 주어진다.
  • vv — 그 주문을 완료했을 때 배달원이 받는 금액.
  • z1,z2,…,zNz_1, z_2, \dots, z_N — ii번째 배달원이 이 주문을 완료하는 데 ziz_i분이 걸림을 의미한다. 한 주문에 대한 값들은 모두 서로 다르다.

출력

한 줄에 NN개의 정수를 출력한다. ii번째 수는 ii번째 배달원이 그날 번 금액이다.

제한

  • 1≤N≤1001 \le N \le 100
  • 1≤M≤10001 \le M \le 1000
  • 1≤t1<t2<⋯<tM≤10001 \le t_1 < t_2 < \dots < t_M \le 1000
  • 1≤vi≤10001 \le v_i \le 1000
  • 1≤zi≤1001 \le z_i \le 100

예제2

  1. 예제 1

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

    입력
    2 3
    1 11 7 5
    2 94 9 5
    4 555 11 16
    
    예상 출력
    94 11