結果
| 問題 | 
                            No.3131 Twin Slide Puzzles
                             | 
                    
| コンテスト | |
| ユーザー | 
                             nasutarou1341
                         | 
                    
| 提出日時 | 2025-04-25 23:18:08 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 721 bytes | 
| コンパイル時間 | 481 ms | 
| コンパイル使用メモリ | 82,092 KB | 
| 実行使用メモリ | 131,764 KB | 
| 最終ジャッジ日時 | 2025-04-25 23:19:08 | 
| 合計ジャッジ時間 | 12,764 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 WA * 1 RE * 1 | 
| other | AC * 11 WA * 6 RE * 40 | 
ソースコード
import itertools
N = int(input())
A = [list(map(int, input().split())) for _ in range(N)]
yes = "Yes"
no = "No"
def nasu(N, A):
  M = N * N
  R = [{}, {}]
  for D in itertools.permutations(range(M), M):
    t = 0
    n = 0
    v = 0
    for d in D: 
      p, q = divmod(n, N)
      if (p % 2) == (q % 2):
        if d % 2:
          t = 1 - t
      v += d * A[n]
      n += 1
    if v in R[t]:
      return yes, R[t][v], D
    else:
      R[t][v] = D
  return no, [], []
if N >= 4:
  x = 1 / 0
else:
  A2 = []
  for a in A:
    A2.extend(a)
  ans, x, y = nasu(N, A2)
  print(ans)
  if ans == no:
    exit()
  for i in range(N):
    print(*x[i * N: (i + 1) * N])
  for i in range(N):
    print(*y[i * N: (i + 1) * N])
            
            
            
        
            
nasutarou1341