結果

問題 No.359 門松行列
ユーザー yaoshimax
提出日時 2016-04-18 10:19:07
言語 Python2
(2.7.18)
結果
AC  
実行時間 63 ms / 2,000 ms
コード長 1,947 bytes
コンパイル時間 113 ms
コンパイル使用メモリ 7,168 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-10-04 13:26:29
合計ジャッジ時間 1,327 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 17
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

def rangesplit(L,p):
ret=[]
for l,r in L:
if r<p:
ret.append((l,r))
elif p<l:
ret.append((l,r))
else:
if l<=p-1 :
ret.append((l,p-1))
if p+1<=r :
ret.append((p+1,r))
ret.append((p,p))
return ret
def isKadomatsu(A):
if A[0]==A[1] or A[1]==A[2] or A[0]==A[2]:
return False
elif A[0]<A[1] and A[1]>A[2]:
return True
elif A[0]>A[1] and A[1]<A[2]:
return True
return False
T=int(raw_input())
for ti in range(T):
L=int(raw_input())
A=[map(int,raw_input().split()) for i in range(3)]
# l is too short
if L==1:
print 0
continue
# set where is blankpoint
blank=[]
ranges=[(1,L-1)]
ranges=rangesplit(ranges,L/2)
for i in range(3):
for j in range(3):
if A[i][j]==0:
blank.append((i,j))
else:
if A[i][j]< L:
#print "split", A[i][j]
ranges=rangesplit(ranges,A[i][j])
#print ranges
#print "split", L-A[i][j]
ranges=rangesplit(ranges,L-A[i][j])
#print ranges
checkList=[[(0,0),(0,1),(0,2)],
[(1,0),(1,1),(1,2)],
[(2,0),(2,1),(2,2)],
[(0,0),(1,0),(2,0)],
[(0,1),(1,1),(2,1)],
[(0,2),(1,2),(2,2)],
[(0,0),(1,1),(2,2)],
[(0,2),(1,1),(2,0)]]
ans=0
for l,r in ranges:
Btmp=A
Btmp[blank[0][0]][blank[0][1]]=l
Btmp[blank[1][0]][blank[1][1]]=L-l
ok=True
for line in checkList:
for (p,q) in line:
B=[A[p][q] for (p,q) in line]
if not isKadomatsu(B):
ok=False
break
if ok:
ans+=r-l+1
print ans
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0