나쁜 의사

시간 제한3초메모리 제한512 MB

요약
각 의사가 날짜 구간 동안 특정 약들을 처방할 때, 한 의사의 처방을 무시했을 때 날마다 필요한 서로 다른 약의 비용 합을 모든 날에 대해 구한다.
난이도

어려움10점 중 8점

유형
세그먼트 트리, 정렬, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

Alex는 병이 났다. 그는 병원에 가서 nn명의 의사를 만났다. ii번째 의사는 lil_i일부터 rir_i일까지 Alex가 kik_i개의 약, 즉 a1,a2,…,akia_1, a_2, \ldots, a_{k_i}를 하루에 하나씩 복용해야 한다고 말했다. 약은 1번부터 mm번까지 번호가 붙어 있다.

물론 여러 의사가 같은 날 같은 약을 복용하라고 하면, Alex는 그날 그 약을 한 알만 복용한다. 적어도 사람들은 실제 생활에서 그렇게 한다.

jj번째 약 한 알의 가격은 cjc_j루블이다. 그런데 Alex는 의심이 든다. 소문에 따르면 이 병원의 의사 중 한 명은 정말 나쁜 의사라고 한다. 어느 의사가 나쁜지는 모르지만, 그는 그 의사의 처방을 무시하기로 했다.

ii번째 의사가 나쁘다고 할 때 Alex가 약값으로 얼마를 쓰게 되는지, 즉 nn개의 수 tit_i를 구하시오.

입력

첫 번째 줄에 두 정수 nn과 mm이 주어진다. nn은 의사의 수, mm은 약의 수이다. (1≤n≤500 0001 \le n \le 500\,000, 1≤m≤500 0001 \le m \le 500\,000)

두 번째 줄에 mm개의 정수 cjc_j가 주어진다. cjc_j는 jj번째 약 한 알의 가격이다. (1≤cj≤1 000 0001 \le c_j \le 1\,000\,000)

다음 nn개의 줄에 각 의사에 대한 정보가 주어진다. ii번째 줄은 세 정수 li,ri,kil_i, r_i, k_i로 시작한다. lil_i와 rir_i는 ii번째 의사가 처방한 복용 기간의 시작일과 종료일이고, kik_i는 그가 Alex에게 복용하라고 한 약의 수이다. (1≤li≤ri≤1 000 0001 \le l_i \le r_i \le 1\,000\,000, 1≤ki≤m1 \le k_i \le m) 이어서 kik_i개의 서로 다른 정수 a1,a2,…,akia_1, a_2, \ldots, a_{k_i}가 주어진다. 각 수는 1부터 mm까지이며, 처방에 포함된 약의 번호이다.

입력에 주어지는 모든 kik_i의 합은 1 000 0001\,000\,000을 넘지 않는다.

출력

ii번째 의사의 처방을 무시할 때 Alex가 약값으로 쓰게 되는 금액 t1,t2,…,tnt_1, t_2, \ldots, t_n을 nn개의 정수로 출력한다.

예제1

  1. 예제 1

    입력
    5 4
    1000 100 10 1
    3 4 2 2 3
    4 8 3 1 2 4
    6 7 2 3 4
    8 9 2 1 4
    2 6 3 1 2 3
    
    예상 출력
    8766 7564 8756 7765 6646