結果

問題 No.2731 Two Colors
ユーザー kusirakusira
提出日時 2024-03-14 17:03:33
言語 PyPy3
(7.3.15)
結果
TLE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,636 bytes
コンパイル時間 365 ms
コンパイル使用メモリ 82,432 KB
実行使用メモリ 277,056 KB
最終ジャッジ日時 2024-10-03 13:24:38
合計ジャッジ時間 11,471 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 WA * 1
other WA * 30 TLE * 3
権限があれば一括ダウンロードができます

ソースコード

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

from heapq import *
#
h,w = map(int,input().split())
A = [list(map(int,input().split())) for _ in range(h)]
# BFS使que
queA = [(A[0][0], 0, 0)]
heapify(queA)
usedA = [[0 for j in range(w)]for i in range(h)]
queB = [(A[-1][-1], h-1, w-1)]
heapify(queB)
usedB = [[0 for j in range(w)]for i in range(h)]
# (i,j)
def nextV(i,j):
V = []
#
if((i == 0) == False):
V.append((A[i-1][j], i-1, j))
#
if((i == h-1) == False):
V.append((A[i+1][j], i+1, j))
#
if((j == 0) == False):
V.append((A[i][j-1], i, j-1))
#
if((j == w-1) == False):
V.append((A[i][j+1], i, j+1))
return V
# 1
def f():
v = heappop(queA)
usedA[v[1]][v[2]] = 1
# 10
for nv in nextV(v[1], v[2]):
if(usedB[nv[1]][nv[2]] == 1):
print(i-1)
exit()
#
for nv in nextV(v[1], v[2]):
if(usedA[nv[1]][nv[2]] == 1):
continue
heappush(queA, nv)
# 0
def g():
v = heappop(queB)
usedB[v[1]][v[2]] = 1
# 10
for nv in nextV(v[1], v[2]):
if(usedA[nv[1]][nv[2]] == 1):
print(i-1)
exit()
#
for nv in nextV(v[1], v[2]):
if(usedB[nv[1]][nv[2]] == 1):
continue
heappush(queB, nv)
#
for i in range(h*w):
if(i%2 == 0):
f()
elif(i%2 == 1):
g()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0