https://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=637
#include <iostream>
using namespace std;
int solve(int m, int n){
if (m > n)
swap(m, n);
if (m == 1) //special case
return n;
else if (m == 2) //special case
return 4 * (n / 4) + ( (n % 4 <= 2) ? 2 * (n % 4): 4);
else //normal case
return (m * n + 1) / 2;
}
int main(){
int m, n;
while (true){
cin >> m >> n;
if (m == 0 || n == 0)
break;
int res = solve(m, n);
cout << res << " knights may be placed on a " << m << " row "
<< n << " column board." << endl;
}
return 0;
}
留言列表