結果
| 問題 | No.43 野球の試合 | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2016-10-27 11:43:19 | 
| 言語 | Python2 (2.7.18) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 370 ms / 5,000 ms | 
| コード長 | 710 bytes | 
| コンパイル時間 | 57 ms | 
| コンパイル使用メモリ | 7,040 KB | 
| 実行使用メモリ | 6,528 KB | 
| 最終ジャッジ日時 | 2024-11-24 04:54:09 | 
| 合計ジャッジ時間 | 1,101 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 7 | 
ソースコード
from itertools import product
N = input()
league = [list(raw_input()) for _ in xrange(N)]
unfixed = []
for i in xrange(N):
    for j in xrange(i+1, N):
        if league[i][j] == '-':
            unfixed.append((i, j))
if len(unfixed) == 0:
    rank = sorted(set(map(lambda x:x.count('o'), league)), reverse=True)
    print rank.index(league[0].count('o'))+1
    exit()
ans = N+1
for ox in product('ox', repeat=len(unfixed)):
    for k in xrange(len(unfixed)):
        i, j = unfixed[k]
        league[i][j] = ox[k]
        league[j][i] = 'o' if ox[k] == 'x' else 'x'
    rank = sorted(set(map(lambda x:x.count('o'), league)), reverse=True)
    ans = min(ans, rank.index(league[0].count('o'))+1)
print ans
            
            
            
        