博弈
阿狸和桃子在玩一个游戏,游戏规则如下。
有两堆石子,第一堆有 aa 个石子,第二堆有 bb 个石子,两个人轮流选择一堆,他可以在这一堆中取任意多的石子,规定每次至少取一个,最后取光者得胜。如果桃子先手,请问谁会赢得胜利。
Input
每行两个整数 a , ba,b 代表两堆石子。
整数长度最多不超过1000,输入数据保证不含有前导零。
Output
如果阿狸获胜输出ali,否则输出taoz1
Examples
input
1 1
output
ali
input
0 1
output
taoz1
分析:先分析当两堆石子数量相等的情况,先手从任意一堆中取n个,后手则在相对的一堆石子中取等量的石子,此时两堆石子数量仍是相等的,循环往复,先手从一堆中取后手则继续从相对一堆中取,直到先手把其中一堆取完,接着后手正好把另一堆也取完了,此时先手就不能再取石子了,后手胜。
当两堆石子数量不相等的情况下,先手先从数量较多的一堆中取n个使两堆石子数量相等。此时的先手就变为了上面拥有有利局势的后手,重复上面提到的操作,最终先手胜。
#include<iostream>
#include<string>
using namespace std;
int main(){
string a,b;
cin>>a>>b;
if(a==b){
cout<<"ali"<<endl;
}
else{
cout<<"taoz1"<<endl;
}
}