Chocolate Bar

You have a rectangular chocolate bar. It consists of m×n (1≤m,n≤1000) squares. You want to break it up into 1×1 pieces (individual squares). What is the minimum number of times that you must break the chocolate bar, or pieces thereof, in order to achieve this? Note that you cannot stack pieces of the bar and break them, because the chocolate bar is thick. As an example, a 2×2 bar requires 3 breaks. First you can break it in half, then break each of the halves in half. You cannot break it in half, stack the two 1×2 pieces, and then use only one more break to achieve your goal.

Input Format
The first line contains an integer N, the number of test cases to follow.
Each of the following N lines contains two space-separated integers, the dimensions m and n of a chocolate bar.

Output Format
A line containing a single integer for each case given in the input: the answer for the corresponding case.

Sample Input
2
1 2
2 2

Sample Output
1
3

All Submissions
Best Solutions


Point Value: 5
Time Limit: 2.00s
Memory Limit: 16M
Added: Feb 21, 2009
Author: javic

Languages Allowed:
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, PHP, SCM, CAML, PERL, C#, C++11, PYTH3

Comments (Search)

It's quiet in here...