汉密尔顿路径
题号:NC21304
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

有一个有向图,恰好有n*(n-1)/2条边,对于每一个(i,j)要么有一条
i->j的边,要么有一条j->i的边,但不会同时存在这两条边
给你这个图的邻接矩阵a,a[i][j]='+'表示i->j有边,'-'表示没有
a[i][i]='.'表示这个图没有自环
图的汉密尔顿路径是长度为n包含每个点恰好一次的路径
实际上对于上面这种特性的图,一定存在至少一条汉密尔顿路径
输出任意一条汉密尔顿路径

输入描述:

第一行输入一个整数n (2 ≤ n ≤ 100)
接下来n行每行输入一个长度为n的字符串

输出描述:

输出一行包含n个整数
示例1

输入

复制
2
.+
-.

输出

复制
0 1
示例2

输入

复制
3
.++
-.+
--.

输出

复制
0 1 2
示例3

输入

复制
4
.--+
+.+-
+-.-
-++.

输出

复制
3 1 2 0
示例4

输入

复制
4
.+-+
-.+-
+-.-
-++.

输出

复制
3 2 0 1
示例5

输入

复制
5
.++--
-.-++
-+.+-
+--.+
+-+-.

输出

复制
3 0 2 1 4

备注:

子任务1: n <= 10
子任务2: n <= 20
子任务3: 无限制