#qm02. 不许无视灯
不许无视灯
题目描述
Taki 刚才制作了一个有 盏灯和 个开关的电路,电路中的每个元件(即每盏灯或每个开关)都有两个状态:开或者关。灯和开关按照下列方式排序:
- 每盏灯连接两个开关。
- 每个开关与一盏灯连接,且不知道灯和开关的连接关系。
- 如果所有开关都处于关闭状态,则所有的灯也会关闭。
- 如果开关状态发生改变(即关变成开或开变成关),则相连的灯也会改变状态。
Taki 把电路拿给 Anon 看,并给了她一个谜题:能够开启灯的数量的最小值和最大值分别是多少?
Anon 非常了解 Taki 的小把戏,很快就给出了正确答案。你也能做到吗?
输入格式
每个测试点有多组测试数据。第一行包含整数 ,表示测试数据个数。
每个测试数据的第一行为一个整数 ,表示灯的数量。
第二行包含 个整数 ,表示开关的状态,其中 表示第 个开关处于关闭状态, 表示第 个开关处于开启状态。
输出格式
对于每组测试数据,输出两个整数,分别表示能够开启灯的数量的最小值和最大值。
样例解释
对于第一个测试数据,电路中只有一盏灯,且开关均处于关闭状态,因此灯一定处于关闭状态。
对于第二个测试数据,电路中只有一盏灯,但其中一个开关处于开启状态,因此灯一定处于开启状态。
对于第三个测试数据,电路中只有一盏灯,且前两个开关都处于开启状态,这说明这盏灯被两个开关分别切换了一次状态,所以灯处于关闭状态。
对于第四个测试数据,让所有灯都处于关闭状态的可能为:
- 开关 1 和开关 4 连接电灯 1。由于这两个开关都关闭,所以这盏灯也关闭。
- 开关 2 和开关 6 连接电灯 2。由于这两个开关都关闭,所以这盏灯也关闭。
- 开关 3 和开关 5 连接电灯 3。由于这两个开关都开启,所以这盏灯的状态被切换了两次,处于关闭状态。
让两盏灯处于开启状态的可能为:
- 开关 1 和开关 2 连接电灯 1。由于这两个开关都关闭,所以这盏灯也关闭。
- 开关 3 和开关 4 连接电灯 1。由于开关 3 开启而开关 4 关闭,所以这盏灯开启。
- 开关 5 和开关 6 连接电灯 3。由于开关 5 开启而开关 6 关闭,所以这盏灯开启。
输入样例:
5
1
0 0
1
0 1
1
1 1
3
0 0 1 0 1 0
3
0 1 1 1 0 0
输出样例:
0 0
1 1
0 0
0 2
1 3