1. 程式人生 > >湘潭邀請賽——Alice and Bob

湘潭邀請賽——Alice and Bob

indicate pro scan printf turn name pap 100% %d

Alice and Bob

Accepted : 133 Submit : 268
Time Limit : 1000 MS Memory Limit : 65536 KB

Problem Description

The famous "Alice and Bob" are playing a game again. So now comes the new problem which need a person smart as you to decide the winner. The problem is as follows: They are playing on a rectangle paper, Alice and Bob take turn alternatively, for each turn, a people cut the rectangle vertically or horizontally, the result two rectangle after cut must be IDENTICAL, also the side must be integer, after the cut, one rectangle will be descarded. The first people fail to cut lose the game. Of course, Alice makes first as usual.

Input

First Line contains an integer t indicate there are t cases(1≤t≤1000) For each case: The input consists of two integers w and h(1≤w,h≤1,000,000,000), the size of rectangle.

Output

First output Case number For each case output Alice or Bob, indicate the winner.

Sample Input

2
1 2
2 2

Sample Output

Case 1: Alice
Case 2: Bob


題意:一塊長方形紙張。Alice先對折剪下,再由Bob對折剪下。若一個人無論怎麽剪面積都是小數的時候。這個人就輸了這場比賽。

思路:長方形的面積是長乘以寬,無論以哪一個邊對折剪下,那條邊都是除以2,若有一條邊長度變為小數,則這個人就輸了。假設模擬。有可能會超時,運用邊找規律。

當兩條邊都變成奇數的時候,則這個人就輸了。也就是說。看偶數能對折幾次。

Alice and Bob
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

using namespace std;


int main()
{
    int n,m,i,j,k,a,b;
    scanf("%d",&n);
    for(m = 1;m <= n;m++)
    {
        scanf("%d%d",&a,&b);
        i = 0;
        while(a % 2 == 0)
        {
            i++;
            a = a / 2;
        }
        while(b % 2 == 0)
        {
            i++;
            b = b / 2;
        }
        if(i % 2 == 0)
            printf("Case %d: Bob\n",m);
        else
            printf("Case %d: Alice\n",m);
    }
    return 0;
}


湘潭邀請賽——Alice and Bob