結果

問題 No.3734 No Flat Notes
コンテスト
ユーザー kidodesu
提出日時 2026-09-19 17:59:18
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 2,351 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 479 ms
コンパイル使用メモリ 83,460 KB
実行使用メモリ 88,152 KB
最終ジャッジ日時 2026-09-19 17:59:53
合計ジャッジ時間 8,140 ms
ジャッジサーバーID
(参考情報)
judge2_1 / judge1_1
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
部分点 20 % AC * 28
満点 80 % AC * 43 WA * 17
合計 3.5 * 20% = 70 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

def main():
    h, w, m = list(map(int, input().split()))
    if m == 0:
        print(-1)
        return
    from collections import deque
    dq = deque([i for i in range(h*w)])
    Ans = [[-1 for _ in range(w)] for _ in range(h)]
    m0 = m1 = m-1
    if not w % 2:
        for x in range(w):
            if not x % 2:
                Y = [i for i in range(h)]
            else:
                Y = [i for i in range(h-1, -1, -1)]
            for y in Y:
                if not m0 and not m1:
                    Ans[y][x] = dq.popleft()
                if not (x+y) % 2:
                    if m0:
                        Ans[y][x] = dq.popleft()
                        m0 -= 1
                else:
                    if m1:
                        Ans[y][x] = dq.pop()
                        m1 -= 1
    elif not h % 2:
        for y in range(h):
            if not y % 2:
                Y = [i for i in range(w)]
            else:
                Y = [i for i in range(w-1, -1, -1)]
            for x in Y:
                if not m0 and not m1:
                    Ans[y][x] = dq.popleft()
                if not (x+y) % 2:
                    if m0:
                        Ans[y][x] = dq.popleft()
                        m0 -= 1
                else:
                    if m1:
                        Ans[y][x] = dq.pop()
                        m1 -= 1
    else:
        for x in range(w):
            if not x % 2:
                Y = [i for i in range(h-1)]
            else:
                Y = [i for i in range(h-2, -1, -1)]
            for y in Y:
                if not m0 and not m1:
                    Ans[y][x] = dq.popleft()
                if not (x+y) % 2:
                    if m0:
                        Ans[y][x] = dq.popleft()
                        m0 -= 1
                else:
                    if m1:
                        Ans[y][x] = dq.pop()
                        m1 -= 1
        for x in range(w-1, -1, -1):
            y = h-1
            if not m0 and not m1:
                Ans[y][x] = dq.popleft()
            if not (x+y) % 2:
                if m0:
                    Ans[y][x] = dq.popleft()
                    m0 -= 1
            else:
                if m1:
                    Ans[y][x] = dq.pop()
                    m1 -= 1
    for ans in Ans:
        print(*[a+1 for a in ans])

main()
0