結果
| 問題 | No.2986 Permutation Puzzle |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-01 10:38:31 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
WA
不安定
|
| 実行時間 | - |
| コード長 | 2,137 bytes |
| 記録 | |
| コンパイル時間 | 1,256 ms |
| コンパイル使用メモリ | 96,204 KB |
| 実行使用メモリ | 96,900 KB |
| 最終ジャッジ日時 | 2026-09-01 10:38:40 |
| 合計ジャッジ時間 | 5,617 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 WA * 1 TLE * 1 |
| other | -- * 40 |
ソースコード
import copy
N,K = map(int,input().split())
A = [list(map(int,input().split())) for _ in range(N)]
A = [[A[i][j]-1 for j in range(N)] for i in range(N)]
B = [list(map(int,input().split())) for _ in range(N)]
B = [[B[i][j]-1 for j in range(N)] for i in range(N)]
C = copy.deepcopy(B)
def inv_b(b):
c = [(b[i],i) for i in range(N)]
c = sorted(c,key=lambda x:x[0])
c = [c[i][1] for i in range(N)]
return c
def row_tr(b):
global B,C
for k in range(N):
for j1 in range(N):
C[b[k]][j1] = B[k][j1]
B = copy.deepcopy(C)
def col_tr(b):
global B,C
for k in range(N):
for i1 in range(N):
C[i1][b[k]] = B[i1][k]
B = copy.deepcopy(C)
ans = []
def dfs(x,i):
global A,B,C,ans
if len(ans)>K:
return False
flag = True
for i in range(N):
for j in range(N):
if A[i][j]!=B[i][j]:
flag = False
break
if not flag:break
if flag:
return flag
for y in ["R","C"]:
for j in range(N):
if y=="R":
b = [0]*N
for k in range(N):
b[k] = B[j][k]
row_tr(b)
else:
b = [0]*N
for k in range(N):
b[k] = B[k][j]
col_tr(b)
ans.append((y,j+1))
flag = dfs(y,j)
if flag:
return flag
if y=="R":
row_tr(inv_b(b))
else:
col_tr(inv_b(b))
ans.pop()
return False
flag = False
for x in ["R","C"]:
for i in range(N):
if x=="R":
b = [0]*N
for k in range(N):
b[k] = B[i][k]
row_tr(b)
else:
b = [0]*N
for k in range(N):
b[k] = B[k][i]
col_tr(b)
ans.append((x,i+1))
flag = dfs(x,i)
if flag:break
if x=="R":
row_tr(inv_b(b))
else:
col_tr(inv_b(b))
ans.pop()
if flag:break
print(len(ans))
for x,i in ans:
print(x,i)