結果

問題 No.3092 Tired Queen
ユーザー サバseverzemlya
提出日時 2025-04-06 16:58:50
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
WA  
実行時間 -
コード長 3,723 bytes
コンパイル時間 1,039 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 42,204 KB
最終ジャッジ日時 2025-04-06 16:59:25
合計ジャッジ時間 35,343 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 30 WA * 11
権限があれば一括ダウンロードができます

ソースコード

diff #

# 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)
0