题目传送门
/*
题意:给n, k,然后允许给某一个数加上k的正整数倍,当然可以不加,
问你是否可以把这n个数变成1,2,3,...,n, 可以就输出Jerry, 否则输出Tom。
贪心:保存可能变成的值的方案数,当一个符合,其他所有可能方案减1
最大匹配 详细解释:http://blog.csdn.net/u012596172/article/details/40784773?utm_source=tuicool
*/
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cmath>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <ctime>
#include <cstdlib>
using namespace std;
const int MAXN = 1e2 + ;
const int INF = 0x3f3f3f3f;
int a[MAXN];
int cnt[MAXN];
int n, k;
int main(void) //HDOJ 5090 Game with Pearls
{
//freopen ("A.in", "r", stdin);
int t; scanf ("%d", &t);
while (t--)
{
memset (cnt, , sizeof (cnt));
scanf ("%d%d", &n, &k);
for (int i=; i<=n; ++i)
{
scanf ("%d", &a[i]);
for (int j=a[i]; j<=n; j+=k)
cnt[j]++;
}
bool win = true;
for (int i=; i<=n; ++i)
{
if (!cnt[i]) {win = false; break;}
for (int j=i; j<=n; j+=k) cnt[j]--;
}
if (win) puts ("Jerry");
else puts ("Tom");
}
return ;
}
/*
Jerry
Tom
*/