Submission #3458411


Source Code Expand

def main():
    inits = []
    for i in range(8):
        s = input()
        for j, c in enumerate(s):
            if c == 'Q':
                inits.append((i, j))

    answer = solve(inits)
    if answer:
        for i in range(8):
            line = []
            for j in range(8):
                if (i, j) in answer:
                    line.append('Q')
                else:
                    line.append('.')
            print(''.join(line))
    else:
        print('No Answer')


def solve(inits):
    m = set()
    for i in range(8):
        for j in range(8):
            m.add((i, j))

    for init in inits:
        if init not in m:
            return False
        m = m - queen_route(*init)

    return search(inits, m)

def search(queens, m):
    if len(queens) == 8:
        return queens
    
    for pos in m:
        r = search(queens + [pos], m - queen_route(*pos))
        if r:
            return r

    return None

def queen_route(y, x):
    s = set()
    for i in range(8):
        s.add((i, x))
        s.add((y, i))

        j = y - x + i
        if 0 <= j < 8:
            s.add((j, i))

        j = x + y - i
        if 0 <= j < 8:
            s.add((j, i))

    return s


main()

Submission Info

Submission Time
Task C - パズルのお手伝い
User odz
Language Python (3.4.3)
Score 100
Code Size 1280 Byte
Status AC
Exec Time 22 ms
Memory 3064 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 42
Set Name Test Cases
All 00_sample1.txt, 00_sample2.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 01_rnd_20.txt, 01_rnd_21.txt, 01_rnd_22.txt, 01_rnd_23.txt, 01_rnd_24.txt, 01_rnd_25.txt, 01_rnd_26.txt, 01_rnd_27.txt, 01_rnd_28.txt, 01_rnd_29.txt, 01_rnd_30.txt, 01_rnd_31.txt, 01_rnd_32.txt, 01_rnd_33.txt, 01_rnd_34.txt, 01_rnd_35.txt, 01_rnd_36.txt, 01_rnd_37.txt, 01_rnd_38.txt, 01_rnd_39.txt
Case Name Status Exec Time Memory
00_sample1.txt AC 17 ms 3064 KB
00_sample2.txt AC 17 ms 3064 KB
01_rnd_00.txt AC 20 ms 3064 KB
01_rnd_01.txt AC 17 ms 3064 KB
01_rnd_02.txt AC 17 ms 3064 KB
01_rnd_03.txt AC 20 ms 3064 KB
01_rnd_04.txt AC 17 ms 3064 KB
01_rnd_05.txt AC 20 ms 3064 KB
01_rnd_06.txt AC 17 ms 3064 KB
01_rnd_07.txt AC 17 ms 3064 KB
01_rnd_08.txt AC 17 ms 3064 KB
01_rnd_09.txt AC 17 ms 3064 KB
01_rnd_10.txt AC 17 ms 3064 KB
01_rnd_11.txt AC 17 ms 3064 KB
01_rnd_12.txt AC 17 ms 3064 KB
01_rnd_13.txt AC 17 ms 3064 KB
01_rnd_14.txt AC 17 ms 3064 KB
01_rnd_15.txt AC 17 ms 3064 KB
01_rnd_16.txt AC 17 ms 3064 KB
01_rnd_17.txt AC 17 ms 3064 KB
01_rnd_18.txt AC 17 ms 3064 KB
01_rnd_19.txt AC 17 ms 3064 KB
01_rnd_20.txt AC 17 ms 3064 KB
01_rnd_21.txt AC 17 ms 3064 KB
01_rnd_22.txt AC 17 ms 3064 KB
01_rnd_23.txt AC 20 ms 3064 KB
01_rnd_24.txt AC 17 ms 3064 KB
01_rnd_25.txt AC 18 ms 3064 KB
01_rnd_26.txt AC 17 ms 3064 KB
01_rnd_27.txt AC 17 ms 3064 KB
01_rnd_28.txt AC 22 ms 3064 KB
01_rnd_29.txt AC 17 ms 3064 KB
01_rnd_30.txt AC 17 ms 3064 KB
01_rnd_31.txt AC 17 ms 3064 KB
01_rnd_32.txt AC 17 ms 3064 KB
01_rnd_33.txt AC 17 ms 3064 KB
01_rnd_34.txt AC 17 ms 3064 KB
01_rnd_35.txt AC 17 ms 3064 KB
01_rnd_36.txt AC 17 ms 3064 KB
01_rnd_37.txt AC 17 ms 3064 KB
01_rnd_38.txt AC 19 ms 3064 KB
01_rnd_39.txt AC 22 ms 3064 KB