#HK5345. 「POI2008 R2」黑手党 Mafia

「POI2008 R2」黑手党 Mafia

题目描述

题目译自 XV OI Olimpiada Informatyczna – II etap Mafia

赤道拜托西亚近期饱受黑手党火并困扰。首都拜托城汇聚了黑帮首领,试图平息纷争。谈判某刻气氛骤紧,各首领拔枪相向,每人持枪瞄准另一人。若爆发枪战,按荣誉守则:

  • 首领按某顺序依次开枪,每次仅一人射击。
  • 无人失手,被击者立即死亡,无法开枪。
  • 每人仅射一次,若未被击毙。
  • 无人可中途更改初始目标,即使目标已死(此时射击不增受害人数)。

一位与众首领交好的殡仪业者恰巧目睹此景。他希望估算可能的受害人数:最小与最大值。他知晓每人瞄准对象,但不知开枪顺序。你的任务是编写程序计算此人数。

编写程序:

  • 从标准输入读取各黑帮首领的瞄准目标描述。
  • 计算枪战的最小和最大受害人数。
  • 将结果输出到标准输出。

输入格式

第一行包含一个整数 nn (1n1000000)(1 \leq n \leq 1000000),表示首领人数,编号 11nn。第二行包含 nn 个整数 s1,s2,,sns_1, s_2, \ldots, s_n (1sin)(1 \leq s_i \leq n),用单空格分隔,sis_i 表示首领 ii 瞄准的首领编号。可能 si=is_i = i

输出格式

输出一行,包含两个整数,用单空格分隔,分别表示枪战的最小和最大受害人数。

8
2 3 2 2 6 7 8 5

3 5

mafzad.gif