結果

問題 No.3724 Domination
コンテスト
ユーザー kidodesu
提出日時 2026-09-19 14:06:45
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 312 ms / 2,000 ms
+ 518µs
コード長 2,037 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 262 ms
コンパイル使用メモリ 82,216 KB
実行使用メモリ 93,288 KB
最終ジャッジ日時 2026-09-19 14:07:07
合計ジャッジ時間 17,395 ms
ジャッジサーバーID
(参考情報)
judge4_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
部分点 20 % AC * 8
満点 80 % AC * 52
合計 2.5 * 100% = 250 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

from itertools import permutations as P
def main():
    n = int(input())
    A = list(map(lambda x: int(x), input().split()))
    B = list(map(lambda x: int(x), input().split()))
    Ans = [[-1 for _ in range(n)] for _ in range(n)]
    if n == 2:
        return [[]]
    if n == 3:
        if min(B) == max(B): return [[]]
        for X in [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]:
            for i in range(3):
                if X[i] == B[i]:
                    break
            else:
                for y in range(3):
                    a = A[y]
                    b = X.index(a)
                    for x in range(3):
                        if b == x:
                            Ans[y][x] = B[x]
                        else:
                            Ans[y][x] = A[y]
                break
        return Ans
    if n == 4:
        if min(B) == max(B): return [[]]
        for X in P(range(1, 5), 4):
            for i in range(4):
                if X[i] == B[i]:
                    break
            else:
                for y in range(4):
                    a = A[y]
                    b = X.index(a)
                    for x in range(4):
                        if b == x:
                            Ans[y][x] = B[x]
                        else:
                            Ans[y][x] = A[y]
                break
        return Ans
    if n % 2:
        for y in range(n):
            for x in range(y, y+(n+1)//2):
                Ans[y][x%n] = A[y]
        for y in range(n):
            for x in range(n):
                if Ans[y][x] == -1:
                    Ans[y][x] = B[x]
    else:
        for y in range(n):
            for x in range(y, y+(n+2)//2):
                Ans[y][x%n] = A[y]
        for y in range(n):
            for x in range(n):
                if Ans[y][x] == -1:
                    Ans[y][x] = B[x]
    return Ans

for _ in range(int(input())):
    Ans = main()
    if not Ans[0]:
        print(-1)
    else:
        for ans in Ans:
            print(*ans)
0