#P2070. 心有灵犀一点通
心有灵犀一点通
题目描述


小七刚才制作了一个有 盏灯和 个开关,开关(即每盏灯或每个开关)都有两个状态:开或者关。灯和开关按照下列方式排序:
- 每盏灯连接两个开关。
- 每个开关与一盏灯连接,且不知道灯和开关的连接关系。
- 如果灯的两个开关都处于关闭状态,则灯也会关闭。
- 如果开关状态发生改变(即关变成开或开变成关),则相连的灯也会改变状态。
小七把只展示了 盏灯的开关拿给奶龙看,并给了它一个谜题:能够开启灯的数量的最小值和最大值分别是多少?
奶龙非常聪明,很快就给出了正确答案。你也能做到吗?
输入格式
每个测试点有多组测试数据。第一行包含整数 ,表示测试数据个数。
每个测试数据的第一行为一个整数 ,表示灯的数量。
第二行包含 个整数 ,表示开关的状态,其中 表示第 个开关处于关闭状态, 表示第 个开关处于开启状态。
输出格式
对于每组测试数据,输出两个整数,分别表示能够开启灯的数量的最小值和最大值。
样例
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
对于第一个测试数据,只有一盏灯,且开关均处于关闭状态,因此灯一定处于关闭状态。
对于第二个测试数据,只有一盏灯,但其中一个开关处于开启状态,因此灯一定处于开启状态。
对于第三个测试数据,只有一盏灯,且前两个开关都处于开启状态,这说明这盏灯被两个开关分别切换了一次状态,所以灯处于关闭状态。
对于第四个测试数据,让所有灯都处于关闭状态的可能为:
- 开关 和开关 连接电灯 。由于这两个开关都关闭,所以这盏灯也关闭。
- 开关 和开关 连接电灯 。由于这两个开关都关闭,所以这盏灯也关闭。
- 开关 和开关 连接电灯 。由于这两个开关都开启,所以这盏灯的状态被切换了两次,处于关闭状态。
让两盏灯处于开启状态的可能为:
- 开关 和开关 连接电灯 。由于这两个开关都关闭,所以这盏灯也关闭。
- 开关 和开关 连接电灯 。由于开关 开启而开关 关闭,所以这盏灯开启。
- 开关 和开关 连接电灯 。由于开关 开启而开关 关闭,所以这盏灯开启。
相关
在下列比赛中: