結果
問題 |
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)