結果
| 問題 |
No.3092 Tired Queen
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2025-04-06 16:58:32 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 3,723 bytes |
| コンパイル時間 | 466 ms |
| コンパイル使用メモリ | 82,240 KB |
| 実行使用メモリ | 69,280 KB |
| 最終ジャッジ日時 | 2025-04-06 16:58:43 |
| 合計ジャッジ時間 | 8,867 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 41 |
ソースコード
# R
# cSpell:disable
from bisect import bisect_left, bisect_right
from collections import Counter, defaultdict, deque
from functools import lru_cache
from itertools import combinations, permutations
from math import ceil, log, log2, log10
from sys import setrecursionlimit, stdin
import numpy as np
def flatten(N):
from itertools import chain
return chain.from_iterable(N)
def getPrimes(n: int):
N = list(3, range(n), 2)
P = [2]
p = 2
V = int(pow(N, 0.5))
while p < V:
p = N.pop(0)
N = [t for t in N if N % p]
P.append(p)
return P
def getFactor(n: int):
P = []
V = int(pow(n, 0.5))
while not n % 2:
n //= 2
P.append(2)
for k in range(3, V + 1, 2):
while not n % k:
n //= k
P.append(k)
return P
def dijkstra(f, p, E):
for q in E[p]:
if f != q:
return dijkstra(p, q, E)
setrecursionlimit(10**8)
def ins(): return stdin.readline()[:-1]
def inms(): return ins().split()
def ini(): return int(ins())
def inmi(): return map(int, inms())
def inf(): return float(ins())
def inmf(): return map(float, inms())
def out(*args, sep=" ", end="\n"): print(*args, sep=sep, end=end)
MOD = 1000000007
MAX = 1 << 63
MIN = -1 << 63
N = ini()
A = np.array([[0] * N for _ in range(N)])
m = 1
if N % 2:
for i in range(0, N, 2):
A[0, i] = (i // 2 * 4) + 1
if i + 1 < N:
A[0, i + 1] = (i // 2 * 4) + 2
for i in range(1, N, 2):
A[i, 0] = ((i - 1) // 2 * 4) + 3
if i + 1 < N:
A[i + 1, 0] = ((i - 1) // 2 * 4) + 4
Q = [0, N - 1]
m = N * 2
for i in range(N // 4):
for j in range(N // 2):
Q[0] += 1
A[Q[0], Q[1]] = m
m += 1
Q[0] += 1
Q[1] -= 1
A[Q[0], Q[1]] = m
m += 1
Q[0] -= 1
A[Q[0], Q[1]] = m
m += 1
Q[0] += 1
Q[1] += 1
A[Q[0], Q[1]] = m
m += 1
Q[1] -= 3
Q[0] += 1
for j in range(N // 2):
Q[0] -= 1
A[Q[0], Q[1]] = m
m += 1
Q[0] -= 1
Q[1] += 1
A[Q[0], Q[1]] = m
m += 1
Q[0] += 1
A[Q[0], Q[1]] = m
m += 1
Q[0] -= 1
Q[1] -= 1
A[Q[0], Q[1]] = m
m += 1
Q[0] -= 1
Q[1] -= 1
if N % 4 == 3:
for j in range(N // 2):
Q[0] += 1
A[Q[0], Q[1]] = m
m += 1
Q[0] += 1
Q[1] -= 1
A[Q[0], Q[1]] = m
m += 1
Q[0] -= 1
A[Q[0], Q[1]] = m
m += 1
Q[0] += 1
Q[1] += 1
A[Q[0], Q[1]] = m
m += 1
else:
Q = [-1, 0]
for i in range(N // 4):
for j in range(N // 2):
Q[0] += 1
A[Q[0], Q[1]] = m
m += 1
Q[0] += 1
Q[1] += 1
A[Q[0], Q[1]] = m
m += 1
Q[0] -= 1
A[Q[0], Q[1]] = m
m += 1
Q[0] += 1
Q[1] -= 1
A[Q[0], Q[1]] = m
m += 1
Q[1] += 2
Q[0] += 1
for j in range(N // 2):
Q[0] -= 1
A[Q[0], Q[1]] = m
m += 1
Q[0] -= 1
Q[1] += 1
A[Q[0], Q[1]] = m
m += 1
Q[0] += 1
A[Q[0], Q[1]] = m
m += 1
Q[0] -= 1
Q[1] -= 1
A[Q[0], Q[1]] = m
m += 1
Q[1] += 2
Q[0] -= 1
for a in A:
print(*a)