結果
| 問題 | No.3724 Domination |
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2026-09-19 14:06:45 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 312 ms / 2,000 ms |
| + 518µs | |
| コード長 | 2,037 bytes |
| 記録 | |
| コンパイル時間 | 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 点 |
ソースコード
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)
kidodesu