結果

問題 No.43 野球の試合
ユーザー rpy3cpprpy3cpp
提出日時 2015-08-03 21:03:41
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
AC  
実行時間 98 ms / 5,000 ms
コード長 998 bytes
コンパイル時間 96 ms
コンパイル使用メモリ 10,796 KB
実行使用メモリ 7,920 KB
最終ジャッジ日時 2023-09-25 00:56:17
合計ジャッジ時間 1,067 ms
ジャッジサーバーID
(参考情報)
judge11 / judge13
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 18 ms
7,804 KB
testcase_01 AC 17 ms
7,860 KB
testcase_02 AC 16 ms
7,776 KB
testcase_03 AC 16 ms
7,892 KB
testcase_04 AC 16 ms
7,920 KB
testcase_05 AC 16 ms
7,772 KB
testcase_06 AC 16 ms
7,916 KB
testcase_07 AC 98 ms
7,880 KB
testcase_08 AC 16 ms
7,852 KB
testcase_09 AC 16 ms
7,744 KB
testcase_10 AC 16 ms
7,772 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

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))
0