对于后手,最优的方案是,每次 后手选择与先手相反的操作,这样点最终将会在对角线上,如果不能继续走,就后手胜利,否则先手胜利;
接下来只需要二分对角线上的最大距离,求出最大多少个k,再判断是否还能走下一步。
#include<bits/stdc++.h>
typedef unsigned long long ull;
typedef long long ll;
using namespace std;
const int N = 1 << 19;
const int mod  = 1e9 + 7;
/**
 * 不要使用#define int long long
 * 不开long long见祖宗
 *                  ----YuFei Zhou
 */
void solve() {
    ll d,k;
    cin>>d>>k;
    ll l = 0,r = d;
    while (l < r){      //二分找到对角线上的最大的距离(整数)
        ll mid = (l+r+1) >> 1;
        if(mid*mid*2 <= d*d) {
            l = mid;
        }else{
            r = mid - 1;
        }
    }
    ll ans = (l/k) * k;//计算最大对角线上最大举例为多少个k
    if(ans*ans + (ans+k)*(ans+k) <= d*d){   //如果还能走一步就是后手赢,否则先手赢
        cout<<"Parry";
    } else{
        cout<<"Mercedes";
    }
    cout<<endl;
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL),cout.tie(NULL);
    int t = 1;
    cin>>t;
    while(t--){
        solve();//1 2 3 4 5
    }
    return 0 ;
}