바이러스
시간 제한4초메모리 제한1024 MB
각 점에 전파 시간이 주어지고 사람마다 거리 D 이내의 점까지 이동할 수 있을 때, 0번 사람이 0시에 감염된 상태에서 모든 사람의 감염 시각을 구합니다.
문제
KOI 도시는 지난 코로나19 대유행으로 큰 피해를 입었다. 그래서 앞으로 생길 수 있는 팬데믹에 철저히 대비하려 한다. 이를 위해 KOI 도시는 현재 도시 구조가 바이러스에 얼마나 취약한지 분석하려고 한다.
KOI 도시는 개의 지점과 개의 양방향 도로로 이루어져 있으며, 임의의 서로 다른 두 지점을 도로만 사용해 오갈 수 있다. 즉 도시의 도로망은 트리 구조이다. 각 지점은 이상 이하의 서로 다른 정수로 구분된다. 도로망이 트리이므로, 두 지점 , 를 잇는 단순 경로는 하나뿐이다. 이 경로의 간선 개수를 와 의 거리라고 정의한다.
KOI 도시에는 명이 살고 있다. 모든 에 대해 번 사람은 번 지점에 살며, 그 지점에서 거리가 이하인 지점을 오갈 수 있다.
바이러스학자들은 두 사람 사이의 바이러스 전파를 다음과 같이 모델링했다. 모든 에 대해 번 지점의 전파 시간은 양의 정수 이다. 번 사람이 시각 에 처음 감염되었고, 이 사람에게서 바이러스를 전파받을 사람을 번 사람이라 하자. 지점 와 의 거리가 이하이고, 와 의 거리가 이하이면, 는 전파의 매개체가 된다.
전파의 매개체가 되는 지점이 없다면, 번 사람은 번 사람에게서 직접 감염되지 않는다. (물론 다른 사람을 거쳐 간접적으로 감염될 수는 있다.) 매개체가 있다면, 그중 전파 시간을 최소화하는 지점의 번호를 라 한다. 번 사람이 시각 에 아직 감염되지 않았다면, 그 시각에 번 사람에 의해 감염된다. 바이러스는 서로 다른 모든 사람 쌍 , 에 대해 이 방식으로 퍼진다.
이 모델에서 연구진은 번 사람이 시각 에 감염되었을 때 다른 사람들이 언제 감염되는지 계산하려 한다. 모든 에 대해 번 사람이 처음 감염되는 시각을 구하라. 감염되지 않는 사람이라면 을 기록한다.
제한
- 모든 에 대해 이고 이다.
- 모든 에 대해 이다.
- 모든 에 대해 이다.