#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF 1e9 #define PI acos(-1) typedef long long ll; int main() { int n; cin >> n; vector str(n); for (int i = 0; i < n; i++)cin >> str[i]; vectora, b; vectorwin(n); for (int i = 0; i < n; i++)for (int j = 0; j < i; j++) { if (str[i][j] == '-') { a.push_back(i); b.push_back(j); } else if (str[i][j] == 'o')win[i]++; else win[j]++; } int ans = n; for (int i = 0; i < (1 << a.size()); i++) {//未対戦の勝敗全列挙 vector wt(win); for (int j = 0; j < a.size(); j++) { if ((i >> j) % 2)wt[a[j]]++; else wt[b[j]]++; } for (int k = 0; k < n; k++)wt[k] = wt[k] * n + k; sort(wt.begin(), wt.end()); reverse(wt.begin(), wt.end()); int place = 0, f = -1; for (int l = 0; l < n; l++) { int wnum = wt[l] / n; int team = wt[l] % n; if (f != wnum) { f = wnum; place++; } if (team == 0)ans = min(place, ans); } } cout << ans << endl; return 0; }