結果

問題 No.3012 岩井星人グラフ
ユーザー usk
提出日時 2025-02-02 03:55:16
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 718 ms / 2,000 ms
コード長 2,601 bytes
コンパイル時間 840 ms
コンパイル使用メモリ 12,416 KB
実行使用メモリ 48,640 KB
最終ジャッジ日時 2025-02-02 03:55:29
合計ジャッジ時間 12,380 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 23
権限があれば一括ダウンロードができます

ソースコード

diff #

def main():
    N = InputNum()
    M = InputNum()
    ans = []
    ans.append([N * M, N * M])

    for i in range(N):
        ans.append([i + 1, (i + 1) % N + 1])

    margin: int = 0
    to: int = 0

    for i in range(1, N + 1):
        for j in range(M - 1):
            if j == 0:
                to = i + N + margin
                ans.append([i, to])
            else:
                ans.append([to, to + 1])
                to += 1
        margin += M - 2

    for i in ans:
        Output(i)


# いろいろ-------------------------------------------------------------
import sys, typing
from functools import singledispatch
# import array, bisect, collections, copy, heapq, itertools, math, numpy, string
# from typing import overload


class Scanner:
    _int: int = 0
    _str: typing.List[str] = []

    def Next(self) -> str:
        if self._int < len(self._str):
            self._int += 1
            return self._str[self._int - 1]

        st = input().rstrip()

        while st == "":
            st = input().rstrip()

        if st is not None:
            self._str = st.split(' ')

        if len(self._str) == 0:
            return self.Next()

        self._int = 1

        return self._str[self._int - 1]

    def NextLine(self) -> str:
        if self._int < len(self._str):
            st = " " + " ".join(self._str[self._int:len(self._str)])
            self._str = []
            return st

        st = input().rstrip()

        while st == "":
            st = input().rstrip()

        self._str = [st]
        self._int = 1
        return self._str[self._int - 1]

    def NextLong(self) -> int:
        return int(self.Next(sc))

    def NextDouble(self) -> float:
        return float(self.Next(self))


# 標準入力
sc = Scanner
def InputNum(): return sc.NextLong(sc)
def InputNums(n: int): return [InputNum() for _ in range(n)]
def InputNumsMap(): return map(int, input().rstrip().split())
def InputsNums(h: int, w: int): return [InputNums(w) for _ in range(h)]
def InputString(): return sc.Next(sc)
def InputStringLine(): return sc.NextLine(sc)
def InputStrings(n: int): return [InputString() for _ in range(n)]
def InputStringLines(n: int): return [InputStringLine() for _ in range(n)]
def InputsStrings(h: int, w: int): return [InputStrings(w) for _ in range(h)]


# 標準出力
@ singledispatch
def Output(*arg, s: str = " ", e: str = "\n"): print(*arg, sep=s, end=e)
@ Output.register(bool)
def _(arg): print("Yes" if arg else "No")
@Output.register(list)
def _(arg, s: str = " "): print(s.join(map(str, arg)))


if __name__ == "__main__":
    main()
0