CF291A.Spyke Talks

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Spyke Talks

题目描述

Polycarpus 是一家大型公司的主管。公司里有 nn 名秘书,他们在白天都会通过著名的 Spyke VoIP 系统进行通信。我们知道,当两个人通过 Spyke 通话时,Spyke 网络会为这次通话分配一个唯一的 ID,也就是一个正整数的会话号。

有一天,Polycarpus 想知道哪些秘书正在使用 Spyke 通话,哪些没有。对于每位秘书,他写下了该秘书通话的会话号,如果该秘书当时没有通过 Spyke 通话,则记为 00

请你帮助 Polycarpus 分析这些数据,计算有多少对秘书正在通话。如果数据记录有误(即描述的情形无法发生),请输出 1-1 表示出错。

注意,秘书不仅可以和彼此用 Spyke 联系,还可以和其他地方的人通话。此外,不允许使用 Spyke 进行会议通话——也就是说,一次通话只能连接两个人。

输入格式

第一行包含一个整数 nn1n1031 \leq n \leq 10^{3}),表示 Polycarpus 公司里的秘书数量。
第二行包含 nn 个用空格分隔的整数 id1,id2,,idnid_1, id_2, \ldots, id_n0idi1090 \leq id_{i} \leq 10^{9})。其中 idiid_i 表示第 ii 位秘书当前通话的会话号,如果该秘书没有通话,则为 00

秘书的编号从 11nn

输出格式

输出一个整数,表示正在通话的秘书对数。如果 Polycarpus 的记录有误,且数据无法符合题目描述,输出 1-1

说明/提示

在第一个样例中,有两对秘书通过 Spyke 通话:第 2 位与第 4 位,第 3 位与第 5 位。

在第二个样例中,该情形是不可能的,因为不允许会议通话。

由 ChatGPT 5 翻译

样例

6
0 1 7 1 7 10
2
3
1 1 1
-1
1
0
0

在线编程 IDE

建议全屏模式获得最佳体验