Submission #1654330


Source Code Expand

#二つのクィーンが衝突するか判定
import sys
sys.setrecursionlimit(1000000)
def twoDimArray(row,column,n): return [[n for j in range(column)] for i in range(row)]
banmen=[]
yposes=set()
def iscollide(a:tuple,b:tuple):
    if a[0]==b[0]:
        return True
    elif a[1]==b[1]:
        return True
    elif a[0]+a[1]==b[0]+b[1]:
        return True
    elif a[0]-a[1]==b[0]-b[1]:
        return True
    else:
        return False
        
        
def dfs(li:tuple,ypos,xpos):
    if len(li)==8:
        return li
    elif ypos>7:
        return None
    collisionflag=True
    for k in li:
        if iscollide((ypos,xpos),k):
            collisionflag=False
            break
    if collisionflag:
        returned= dfs(li+((ypos,xpos),),ypos+(xpos+1)//8,(xpos+1)%8)
        if returned!=None:
            return returned
    returned= dfs(li,ypos+(xpos+1)//8,(xpos+1)%8)
    if returned!=None:
        return returned
    return None
                    
                
    
for i in range(8):
    tmpstr=input()
    for j in enumerate(tmpstr):
        if j[1]=="Q":
            queenpos=(i,j[0])
            for k in banmen:
                if  iscollide(queenpos,k):
                    print("No Answer")
                    exit()
            yposes.add(queenpos[0])
            banmen.append(queenpos)
banmen=tuple(banmen)
ans=twoDimArray(8,8,".")
returned = dfs(banmen,0,0)
if returned==None:
    print("No Answer")
else:
    for i in returned:
        ans[i[0]][i[1]]="Q"
    for i in ans:
        print("".join(i))
        

Submission Info

Submission Time
Task C - パズルのお手伝い
User yuhi87star
Language Python (3.4.3)
Score 100
Code Size 1615 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 18 ms 3064 KB
00_sample2.txt AC 17 ms 3064 KB
01_rnd_00.txt AC 21 ms 3064 KB
01_rnd_01.txt AC 18 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 21 ms 3064 KB
01_rnd_06.txt AC 18 ms 3064 KB
01_rnd_07.txt AC 17 ms 3064 KB
01_rnd_08.txt AC 18 ms 3064 KB
01_rnd_09.txt AC 17 ms 3064 KB
01_rnd_10.txt AC 18 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 19 ms 3064 KB
01_rnd_14.txt AC 18 ms 3064 KB
01_rnd_15.txt AC 17 ms 3064 KB
01_rnd_16.txt AC 18 ms 3064 KB
01_rnd_17.txt AC 18 ms 3064 KB
01_rnd_18.txt AC 17 ms 3064 KB
01_rnd_19.txt AC 18 ms 3064 KB
01_rnd_20.txt AC 18 ms 3064 KB
01_rnd_21.txt AC 18 ms 3064 KB
01_rnd_22.txt AC 17 ms 3064 KB
01_rnd_23.txt AC 19 ms 3064 KB
01_rnd_24.txt AC 17 ms 3064 KB
01_rnd_25.txt AC 19 ms 3064 KB
01_rnd_26.txt AC 17 ms 3064 KB
01_rnd_27.txt AC 18 ms 3064 KB
01_rnd_28.txt AC 22 ms 3064 KB
01_rnd_29.txt AC 18 ms 3064 KB
01_rnd_30.txt AC 18 ms 3064 KB
01_rnd_31.txt AC 17 ms 3064 KB
01_rnd_32.txt AC 18 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 20 ms 3064 KB
01_rnd_39.txt AC 21 ms 3064 KB