【競プロ典型90問】「033 - Not Too Bright(★2)」解法

このシリーズではE869120さんによって作成された競プロ典型90問をPythonで解いています。

問題

033 - Not Too Bright(★2)

ポイント

設置できるLEDの数は縦H、横Wが奇数か偶数かによって変化します。

それぞれのLED設置パターンは下記のようになります。

・(H,W)= (偶,偶)の場合 ※赤セル=LEDの設置場所

・(H,W)= (偶,奇)の場合 

・(H,W)= (奇,偶)の場合

・(H,W)= (奇,奇)の場合

また、縦もしくは横が1しかない場合は全てのマスにLEDを設置できます。

以上を踏まえ、実装したコードがこちらです。

コード

def main():
    import sys
    sys.setrecursionlimit(10 ** 9)
    input = sys.stdin.readline

    H, W = map(int, input().split(" "))

    #  縦、横の偶奇で場合分け
    led_h = H / 2 if H % 2 == 0 else H // 2 + 1
    led_w = W / 2 if W % 2 == 0 else W // 2 + 1

    #  縦または横が1の時は全てのマスにLEDを置けることを考慮する
    print(H * W if H == 1 or W == 1 else int(led_h * led_w))


if __name__ == '__main__':
    main()

おすすめの記事