頭良くなりたい人

文系大学生shadeのブログです。競技プログラミングや人文学の話題,受験ネタなど。

パナソニックプログラミングコンテスト2020 B - Bishop

問題はこちら
atcoder.jp

指針

問題を読んでもあまり意味が分かりませんが,よくよく例を見てみれば,左上端(初期位置)を (1,1) としたとき,(x,y)xy の偶奇が一致するマス目に印がつくことになりそうです。文中の条件式からも xy の偶奇が一致しないマス目には行けないことが分かります。

HW を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;
        }
    }
}