033 - Not Too Bright(★2)

033 - Not Too Bright(★2)

解説

問題 (opens in a new tab)

盤面を左上から 2×22 \times 2 の正方形分割していけば良いので,

ans := int(math.Ceil(float64(h)/2.0)) * int(math.Ceil(float64(w)/2.0))

で ok.

import { Callout } from "nextra/components";

エッジケースに注意

問題は, '完全に含まれる'という条件から, 例えば h=1,w=3h = 1, w = 3 のとき, 完全に含まれる 2×22 \times 2 の正方形は存在しないので, 全てのマスを点灯させることができる.

if h == 1 || w == 1 {
  writeLine(h * w)
  return
}

提出コード

func main() {
	var h, w int
 
	scanIntVariables(&h, &w)
 
	if h == 1 || w == 1 {
		writeLine(h * w)
		return
	}
 
	ans := int(math.Ceil(float64(h)/2.0)) * int(math.Ceil(float64(w)/2.0))
 
	writeLine(ans)
}