D4u13. KnightCircuit2
时间限制:1.0s 内存限制:256.0MB 代码提交间隔:5分钟(现在可以提交)
输入文件名:KnightCircuit2.in 输出文件名:KnightCircuit2.out
试题来源:Topcoder SRM 564 查看源题
问题描述
一个“骑士”是一种可以通过跳跃来移动的棋子:在一个维度的坐标上移动1个单位长度,另一个维度的坐标上移动2个单位长度(也就是说,假如现在一个骑士在坐标(x,y)上,那么它可以移动到(x+2,y+1), (x+2,y-1), (x-2,y+1), (x-2,y-1), (x+1,y+2), (x+1,y-2), (x-1,y+2), (x-1,y-2)中的任意一个坐标上。当然,一个骑士不能移动到一个不在棋盘上的位置)。
一个完整的“骑士巡回"是棋盘上的一条路线,这条路线中任意相邻的两格必须能由一次骑士跳跃得到(这条路线就是骑士在棋盘上跳的路线)。一个"骑士巡回”可以经过同一个坐标很多次,一个“骑士巡回”的大小是这条路上经过的不同的坐标的个数。给你一个棋盘的宽w和高h,请你求出这个棋盘上大小最大的“骑士巡回”的大小(骑士可以从任意位置开始)。
输入格式
输入包括两个整数w,h,意义如题中所述。
输出格式
输出一行,表示大小最大的“骑士巡回”的大小。
样例输入
1
1
样例输出
1
样例输入
15
2
样例输出
8
数据规模和约定
1<=w,h<=45000。