結果
| 問題 |
No.43 野球の試合
|
| コンテスト | |
| ユーザー |
1235486527
|
| 提出日時 | 2019-12-23 16:54:52 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 196 ms / 5,000 ms |
| コード長 | 870 bytes |
| コンパイル時間 | 142 ms |
| コンパイル使用メモリ | 12,928 KB |
| 実行使用メモリ | 10,880 KB |
| 最終ジャッジ日時 | 2024-09-17 14:52:53 |
| 合計ジャッジ時間 | 1,216 ms |
|
ジャッジサーバーID (参考情報) |
judge6 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 7 |
ソースコード
N = int(input())
tbd = []
win = [0] * N
for i in range(N):
for j, s in enumerate(input()):
if s == 'o':
win[i] += 1
elif s == '-':
if not (j, i) in tbd:
tbd.append((i, j))
n = len(tbd)
ans = float('inf')
if n != 0:
for bm in range(1 << n):
win_tmp = [0] * N
for b in range(n):
if bm & (1 << b) != 0:
win_tmp[tbd[b][0]] += 1
else:
win_tmp[tbd[b][1]] += 1
total_win = win[0] + win_tmp[0]
tws = set([win[i] + win_tmp[i] for i in range(N)])
tmp = 1
for tw in tws:
if total_win < tw:
tmp += 1
ans = min(ans, tmp)
else:
tws = set([win[i] for i in range(N)])
tmp = 1
for tw in tws:
if win[0] < tw:
tmp += 1
ans = min(ans, tmp)
print(ans)
1235486527