数学とプログラミングと

数学とプログラミングについての話題,備忘録

AtCoder Beginner Contest 112に参加したので

どうも!!!!!!!!!!!!!! とりあえず、たまたまバイトが早く終わったので以下のコンテストに参加しました。

abc112.contest.atcoder.jp

とりあえず、A, B, Dだけできたのでここに残しておきます。解説らしい解説はないです。

A

この問題文せこいわ。

def run():
    N = int(input())

    if N == 1:
        print('Hello World')

    else:
        print(int(input()) + int(input()))

if __name__ == '__main__':
    run()

まあこれは簡単だと思います。

B

def run():
    N, T = (int(x) for x in input().split())
    cost = 1001
    for _ in range(N):
        c, t = (int(x) for x in input().split())
        if t <= T and cost > c:
            cost = c

    print(cost if cost <= 1000 else 'TLE')


if __name__ == '__main__':
    run()

こんな感じでどうでしょうか。

D

これは$x_i (i = 1, 2, \ldots, N)$の最大公約数を $d\in \mathbb{N}$ とすると、$\sum_{i = 1, 2, ... , N} x_i$は$d$の倍数です。 すなわち、dはMの約数なのですね。 というわけでM // Nから降順にMを割っていって割り切れたらそれが答えですね。ここでLTE出したのでつらかったですね。

def run():
    N, M = (int(x) for x in input().split())

    for i in range(M // N, 0, -1):
        if M % i == 0:
            print(i)
            break



if __name__ == '__main__':
    run()

こんな感じで、 Cが難しかったのですが、某チョクダイ氏の解説生放送で基礎がなってないと言われました。




知 っ て た










では~