AtCoder Beginner Contest 025

Submission #1679741

Source codeソースコード

def calc(board,b,c,ms):
    ret = -ms
    if (board[0*3+0] == board[1*3+0]): ret += 2*b[0]
    if (board[0*3+1] == board[1*3+1]): ret += 2*b[1]
    if (board[0*3+2] == board[1*3+2]): ret += 2*b[2]
    if (board[1*3+0] == board[2*3+0]): ret += 2*b[3]
    if (board[1*3+1] == board[2*3+1]): ret += 2*b[4]
    if (board[1*3+2] == board[2*3+2]): ret += 2*b[5]
    if (board[0*3+0] == board[0*3+1]): ret += 2*c[0]
    if (board[0*3+1] == board[0*3+2]): ret += 2*c[1]
    if (board[1*3+0] == board[1*3+1]): ret += 2*c[2]
    if (board[1*3+1] == board[1*3+2]): ret += 2*c[3]
    if (board[2*3+0] == board[2*3+1]): ret += 2*c[4]
    if (board[2*3+1] == board[2*3+2]): ret += 2*c[5]
    return ret

def dai(board,count,b,c,ms):
    score = -10000
    for i in range(9):
        if board[i] != 0: continue
        board[i] = 1
        score = max(score, ko(list(board),count,b,c,ms))
        board[i] = 0
    return score

def ko(board,count,b,c,ms):
    if count == 5: return calc(board,b,c,ms)
    score = 10000
    for i in range(9):
        if board[i] != 0: continue
        board[i] = -1
        score = min(score,dai(list(board),count+1,b,c,ms))
        board[i] = 0
    return score

def main():
    board = [0]*9
    b = list(map(int,input().split()))
    b.extend(list(map(int,input().split())))
    c = list(map(int,input().split()))
    c.extend(list(map(int,input().split())))
    c.extend(list(map(int,input().split())))
    score = 0
    for i in range(6):
        score += b[i] + c[i]
    sa = dai(board,1,b,c,score)
    dais = (score + sa)//2
    kos = (score - sa)//2
    print(dais)
    print(kos)

main()

Submission

Task問題 C - 双子と○×ゲーム
User nameユーザ名 omi
Created time投稿日時
Language言語 Python3 (3.4.3)
Status状態 AC
Score得点 100
Source lengthソースコード長 1667 Byte
File nameファイル名
Exec time実行時間 1712 ms
Memory usageメモリ使用量 3316 KB

Test case

Set

Set name Score得点 / Max score Cases
Sample - sample-01.txt,sample-02.txt
All 100 / 100 sample-01.txt,sample-02.txt,test-01.txt,test-02.txt,test-03.txt,test-04.txt,test-05.txt,test-06.txt,test-07.txt,test-08.txt,test-09.txt,test-10.txt,test-11.txt,test-12.txt,test-13.txt,test-14.txt,test-15.txt,test-16.txt,test-17.txt,test-18.txt,test-19.txt,test-20.txt,sample-01.txt,sample-02.txt

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
sample-01.txt AC 1645 ms 3316 KB
sample-02.txt AC 1619 ms 3192 KB
test-01.txt AC 1605 ms 3192 KB
test-02.txt AC 1613 ms 3192 KB
test-03.txt AC 1629 ms 3192 KB
test-04.txt AC 1599 ms 3192 KB
test-05.txt AC 1622 ms 3192 KB
test-06.txt AC 1636 ms 3192 KB
test-07.txt AC 1640 ms 3192 KB
test-08.txt AC 1597 ms 3192 KB
test-09.txt AC 1562 ms 3192 KB
test-10.txt AC 1621 ms 3192 KB
test-11.txt AC 1520 ms 3192 KB
test-12.txt AC 1636 ms 3192 KB
test-13.txt AC 1577 ms 3192 KB
test-14.txt AC 1712 ms 3192 KB
test-15.txt AC 1678 ms 3192 KB
test-16.txt AC 1617 ms 3192 KB
test-17.txt AC 1604 ms 3192 KB
test-18.txt AC 1642 ms 3192 KB
test-19.txt AC 1580 ms 3192 KB
test-20.txt AC 1617 ms 3192 KB