#P16427. pm13760永恒之舞
pm13760永恒之舞
题目背景
星辉舞厅每晚都会响起悠扬的乐曲。舞厅中有同样数量的男生和女生,每位男生都有自己心仪的女生。舞会经理希望安排一场特别的舞蹈:舞蹈结束后,任何参加了舞蹈的男生都不会因为看见某位未参加舞蹈的心仪女生,而抛下当前舞伴去邀请她参加下一支舞。
请你找出任意一种满足条件的舞伴安排。
题目描述
舞厅中有 名男生和 名女生,男生和女生均编号为 。
给定一个由字符 Y 和 N 组成的 矩阵:
- 第 行第 个字符为
Y,表示男生 喜欢女生 ; - 第 行第 个字符为
N,表示男生 不喜欢女生 。
一场舞蹈由若干对舞伴组成,并需要满足:
- 至少有一对舞伴参加舞蹈;
- 每名男生至多出现在一对舞伴中;
- 每名女生至多出现在一对舞伴中;
- 每对舞伴中的男生必须喜欢与他配对的女生;
- 舞蹈结束后,对于每一名参加了舞蹈的男生,他喜欢的所有女生都必须参加了这场舞蹈。
第 条等价于:不存在一名参加了舞蹈的男生,喜欢某位没有参加舞蹈的女生。否则,他会抛下当前舞伴并邀请那名女生参加下一支舞。
请输出任意一种满足上述条件的安排。若不存在合法安排,则输出 -1。
本题可能存在多种正确答案,需要使用特殊评测程序(SPJ)。
输入格式
第一行包含一个整数 。
接下来 行,每行包含一个长度为 的字符串,描述男生对女生的喜欢关系。
输出格式
若不存在合法安排,输出一行一个整数:
-1
否则,第一行输出一个正整数 ,表示参加舞蹈的舞伴对数。
接下来 行,每行输出两个整数 ,表示男生 与女生 配对。
输出需要满足:
- ;
- 所有 互不相同;
- 所有 互不相同;
- 男生 喜欢女生 ;
- 对每个参加舞蹈的男生,他喜欢的所有女生都出现在某一对输出舞伴中。
数据范围
- ;
- 输入矩阵只包含字符
Y和N; - 每名男生至少喜欢一名女生。
样例 1
输入
4
YYNN
NYYN
NNYY
YNNY
输出
4
0 0
1 1
2 2
3 3
说明
所有女生都参加了舞蹈,因此没有男生能够找到未参加舞蹈的心仪女生。
样例 2
输入
4
YNNN
YYNN
YYNN
NNYY
输出
2
1 0
2 1
说明
这组输入存在多种合法安排,样例输出只是其中一种。
样例 3
输入
3
YNY
YNY
YNY
输出
2
1 0
2 2
说明
可能存在没有被任何男生喜欢的女生,这不影响答案的合法性。
样例 4
输入
5
YYYNN
YYYNN
NNNYY
NNNYY
NNNYY
输出
2
3 3
4 4
样例 5
输入
1
Y
输出
1
0 0