假设A,B二人玩游戏,本题A方取胜条件是A方取走糖果后剩下1颗糖果,B方同理。

假设A方先手,在A方的视角下若想确保最后一次取得糖果后仅剩一颗,则只需确保在对方倒数第二次取糖果前,剩下 (m+1+1) 个糖果即可,此时无论对方取多少,我总可以使其剩下一颗。

一共有n个糖果,设常数k(正整数), d,存在 n=d+k(m+1)+1 ,(d<m+1) ,如果A想赢,则需第一次确保拿走d的同时,让对方占有之后的 m+1 个糖果的先手权,在这种情况下我只需每一轮将该轮B拿完 m+1 后剩下的部分即可。

若p=0(A有一次取两次的机会),则上述情况可以实现(将d取掉即可),此时仅需确保A拿一次不会全部拿完,即n>1;

若p=1(B有一次取两次的机会),则无论A第一次拿多少,B总能用两次拿糖果的机会,使A占有之后的 m+1 个糖果的先手权(因为2m>=(d-1)+(m+1)),此时A唯一获胜条件就是 1<n<=m (A先手,总能在一次内拿剩下一个)

int main(){
    std::ios::sync_with_stdio(false);
    int num;
    cin >> num;
    int n, m, p;
    while(num--){
        cin >> n >> m >> p;
        if(m>=n && n!=1) cout << "XiaoNian";
        else if(p==0 && n>m) cout << "XiaoNian";
        else if(p==1 && m+1==n) cout << "XiaoNian";
        else cout << "YangQiShaoNian";
        cout << endl;
    }
    return 0;
}