#include #include #include #include #include using namespace std; int n_games; vector< pair > games; int get_rank(vector vec, int stat) { for (int i = 0; i < n_games; i++) { if ((stat >> i) & 1) { vec[ games[i].first ]++; } else { vec[ games[i].second ]++; } } int wins0 = vec[0]; sort(vec.begin(), vec.end(), greater()); vec.erase(unique(vec.begin(), vec.end()), vec.end()); for (int i = 0; i < vec.size(); i++) { if (vec[i] == wins0) { return i + 1; } } return -1; } int main() { int n; cin >> n; vector result(n); for (int i = 0; i < n; i++) { cin >> result[i]; } games.clear(); vector wins(n, 0); for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { switch (result[i][j]) { case '-': games.push_back(make_pair(i, j)); break; case 'o': wins[i]++; break; case 'x': wins[j]++; break; default: break; } } } int ans = 1000; n_games = games.size(); if (n_games == 0) { ans = get_rank(wins, 0); } else { for (int i = (1 << n_games) - 1; i >= 0; i--) { ans = min(ans, get_rank(wins, i)); } } cout << ans << endl; return 0; }