結果
| 問題 |
No.43 野球の試合
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-08-03 21:03:41 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 124 ms / 5,000 ms |
| コード長 | 998 bytes |
| コンパイル時間 | 89 ms |
| コンパイル使用メモリ | 12,928 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-07-18 01:09:31 |
| 合計ジャッジ時間 | 1,139 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 7 |
ソースコード
def read_data():
N = int(input())
wins = []
xs = []
for i in range(N):
oxs = input()
win = 0
for j, ox in enumerate(oxs):
if ox == 'o':
win += 1
elif ox == '-' and j > i:
xs.append((i, j))
wins.append(win)
return wins, xs
def solve(wins, xs):
n = len(xs)
min_rank = len(wins)
for bits in range(2**n):
wins_tmp = calc_wins(wins, xs, bits)
rank = calc_rank(wins_tmp)
if min_rank > rank:
min_rank = rank
return min_rank
def calc_wins(wins, xs, bits):
wins_tmp = wins[:]
for i, j in xs:
if bits & 1:
wins_tmp[i] += 1
else:
wins_tmp[j] += 1
bits >>= 1
return wins_tmp
def calc_rank(wins):
n_wins = wins[0]
wins = list(set(wins))
wins.sort(reverse=True)
return wins.index(n_wins) + 1
if __name__ == '__main__':
wins, xs = read_data()
print(solve(wins, xs))