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

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

인터넷 채팅

시간 제한5초메모리 제한256 MB

요약
여러 채팅 그룹에서 발생한 가입, 탈퇴, 메시지 이벤트 기록이 주어질 때, 각 학생이 속한 그룹에서 받은 메시지 수를 학생별로 센다.
난이도

보통10점 중 7점

유형
수학, 구현, 배열, 해시맵
정답자
아직 제출이 없습니다

문제

인터넷에서 친구들과 채팅을 즐기다 보면, 여러 채팅 그룹에 쏟아지는 수많은 메시지에 압도되어 짜증이 날 때가 있다. 이런 메시지 대부분은 우리에게 흥미롭지 않지만, 그룹을 조용히 해 두면 중요한 공지를 놓칠 수도 있다. 우리는 모든 온라인 채팅 그룹에서 메시지를 얼마나 많이 받을까? 아무도 이 질문을 진지하게 파고든 적이 없다.

정보학부의 조교 연구원으로서, 당신은 우리가 매일 받는 온라인 메시지의 수를 조사해야 한다. 우리는 이미 nn개의 그룹과 mm명의 학생을 표본으로 추출했다. 모든 그룹은 mm명의 학생 중 일부로 이루어진 부분집합을 포함하며, 이는 비어 있을 수도 있다. 또한 그룹의 구성원은 끊임없이 변한다. 기존 구성원이 나가고, 새 구성원이 채팅 그룹에 들어올 수 있다. 구성원은 그룹에서 메시지를 보낼 수 있으며, 메시지는 현재 같은 그룹에 있는 다른 모든 구성원에게 전송된다.

이제 우리는 이 채팅 그룹들의 로그를 수집했다. 로그는 이벤트의 나열이며, 이벤트는 학생이 그룹에 들어오거나, 그룹에서 나가거나, 그룹에서 메시지를 보내는 것 중 하나일 수 있다. 당신의 임무는 모든 학생이 받은 메시지의 총 개수를 계산하는 것이다.

입력

입력의 첫째 줄에는 세 정수 n,m,sn, m, s (1≤n≤100 000,1≤m≤200 000,1≤s≤1 000 000)(1 \leq n \leq 100\,000, 1 \leq m \leq 200\,000, 1 \leq s \leq 1\,000\,000)가 주어지며, 이는 그룹의 수, 학생의 수, 로그에 있는 이벤트의 수를 나타낸다.

다음 ss개 줄에는 로그의 이벤트가 시간 순서대로 주어진다. 각 줄은 세 정수 t,x,yt, x, y (t∈{1,2,3},1≤x≤m,1≤y≤n)(t \in \{1, 2, 3\}, 1 \leq x \leq m, 1 \leq y \leq n)를 포함하며, 이는 다음과 같은 세 가지 범주 중 하나에 해당하는 이벤트를 나타낸다.

  • t=1t = 1이면 xx번째 학생이 yy번째 그룹에 들어왔다는 뜻이다. 그 학생이 이전에 그룹에 없었음이 보장된다.
  • t=2t = 2이면 xx번째 학생이 yy번째 그룹에서 나갔다는 뜻이다. 그 학생이 현재 그룹에 있었음이 보장된다.
  • t=3t = 3이면 xx번째 학생이 yy번째 그룹에서 메시지를 보냈다는 뜻이다. 그 학생이 지금 그룹에 있음이 보장된다.

처음에 모든 그룹은 비어 있었다.

출력

mm개 줄을 출력한다. ii번째 줄에는 ii번째 학생이 받은 메시지의 총 개수를 나타내는 정수를 출력한다.

예제2

  1. 예제 1

    입력
    3 3 10
    1 3 2
    1 3 1
    1 1 2
    1 2 1
    3 1 2
    2 3 1
    3 3 2
    3 2 1
    3 3 2
    3 2 1
    
    예상 출력
    2
    0
    1
    
  2. 예제 2

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