このシリーズではE869120さんによって作成された競プロ典型90問をPythonで解いています。
問題
ポイント
設置できる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()