만드는 중입니다

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

완전 그래프 위의 샌드파일

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

요약
완전 그래프의 각 정점에 놓인 칩을 옮기는 과정이 끝나지 않는지 판별하고, 끝난다면 정점마다 최종 칩 개수를 구합니다.
난이도

어려움10점 중 9점

유형
수학, 정렬, 구현
정답자
아직 제출이 없습니다

문제

아벨 샌드파일 모델(Abelian Sandpile Model)은 자기조직 임계 현상을 보이는 유명한 동역학 시스템이다. 1987년 Per Bak, Chao Tang, Kurt Wiesenfeld가 논문에서 처음 소개했고, 이후 수십 년 동안 연구되어 왔다. 샌드파일 모델은 물리학, 컴퓨터 과학, 수학에서 모두 관심을 받는다. 대수 구조가 아름답고, 부하 분산과 internal diffusion-limited aggregation 모델의 비무작위화에도 쓰인다. 이 모델은 rotor-routing 모델, 눈사태 모델과도 관련이 있다.

샌드파일 모델에서는 정점이 1부터 nn까지 번호로 구분된 무방향 그래프 GG가 주어진다. 또한 정수 a1,a2,⋯ ,ana_1, a_2, \cdots, a_n이 주어지며, aia_i는 정점 ii에 처음 놓인 칩의 개수다.

매 턴마다 칩 수가 정점 vv의 간선 수 dvd_v 이상인 정점 vv를 임의로 고른다. vv의 이웃 각각은 vv에서 칩을 하나씩 받고, vv는 dvd_v개의 칩을 잃는다. 이 과정을 발화(firing) 또는 톱플링(toppling)이라 한다. 칩 수가 dvd_v 이상인 정점이 더 이상 없을 때까지 발화가 계속된다.

발화 순서는 결과에 영향을 주지 않는다. 그러나 발화가 끝나지 않을 수도 있다. 이 경우를 "recurrent"라 한다. 완전 그래프(모든 두 정점 사이에 간선이 있는 그래프, clique)와 초기 칩 수가 주어진다. 이 상황이 recurrent인지 판별하라. recurrent가 아니라면 각 정점의 최종 칩 수를 출력하라.

입력

첫 번째 줄에 클릭의 크기 nn(2≤n≤5×1052 \le n \le 5 \times 10^5)이 주어진다.

두 번째 줄에 nn개의 정수 a1,a2,⋯ ,ana_1, a_2, \cdots, a_n(0≤ai≤1090 \le a_i \le 10^9)이 주어진다. aia_i는 정점 ii의 초기 칩 수다.

테스트 케이스는 하나뿐이다.

출력

발화가 끝나면 nn개의 정수를 공백으로 구분해 출력한다. ii번째 정수는 정점 ii의 최종 칩 수다. 끝나지 않으면 "Recurrent"를 출력한다.

힌트

첫 번째 예제에서는 처음에 정점 1만 고를 수 있다. 칩 수는 {1, 1, 4, 1, 4}가 된다.

이제 칩이 4개 이상인 정점 3이나 정점 5를 고를 수 있다. 정점 3을 고르면 {2, 2, 0, 2, 5}가 된다. 정점 5를 골라도 결과는 같다.

다음으로 정점 5를 고르면 {3, 3, 1, 3, 1}이 된다. 칩이 4개 이상인 정점이 없으므로 발화가 멈춘다.

두 번째 예제에서는 정점 1과 정점 2를 반복해서 고를 수 있다. 발화는 끝나지 않는다.

예제2

  1. 예제 1

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

    입력
    2
    1 0
    
    예상 출력
    Recurrent