ICPC国内予選2020 B問題:接触追跡

問題. 接触追跡

あるアプリを利用している人が  m 人いる。その中で  p 番目の利用者は感染者である。時刻順に濃厚接触の記録が  n 件与えられる。 i 番目の記録  a_i \neq b_i a_i 番目と  b_i 番目の利用者が濃厚接触したことを表している。感染者と直接的または間接的に感染した疑いのある利用者の総数を求めよ。

制約 1 \le m \le 100 0 \le n \le 1,000

解法.

初めに  p 番目の利用者は感染している。時刻順に  a_i \neq b_i 番目の利用者が濃厚接触したときを考える。お互いがその時点で感染していなければ濃厚接触しても感染者とはならない。ただし、二人のうち少なくとも一人が感染していると他方も感染者となる。一度、感染者になると今後もずっと感染者なので、感染者になったかどうかの配列を用意して時系列順に記録していけば感染者の総数が求まる。

計算時間 O(n)

 

時事問題。