パナソニックプログラミングコンテスト2020 B - Bishop
問題はこちら
atcoder.jp
指針
問題を読んでもあまり意味が分かりませんが,よくよく例を見てみれば,左上端(初期位置)を としたとき, の と の偶奇が一致するマス目に印がつくことになりそうです。文中の条件式からも と の偶奇が一致しないマス目には行けないことが分かります。
と をint型で宣言すると例3でオーバーフローしてしまったので,long型にしています。
コード
#include <bits/stdc++.h> using namespace std; int main(){ long h,w; cin>>h>>w; if(h==1 || w==1){ cout<<1<<endl; }else if(w%2==0){ cout<<w*h/2<<endl; }else{ if(h%2==0){ cout<<w*h/2<<endl; }else{ cout<<w*h/2+1<<endl; } } }