#include <cstdio> #include <cstring> #include <iostream> using namespace std; const int M=510; int m,n; int map[M][M], match[M], chk[M]; int dfs(int p) { int i; for(i=1;i<=m;i++) if( map[p][i] && chk[i]==0 ) { chk[i]=1; if( match[i]==0 || dfs( match[i] ) ) { match[i]=p; return 1; } } return 0; } int solve() { int i,res; for(i=1,res=0; i<=n; i++) { memset(chk,0,sizeof(chk)); res+=dfs(i); } return res; } int main() { // freopen("in","r",stdin); // freopen("out","w",stdout); int k,i,x,t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&k); memset(map,0,sizeof(map)); memset(match,0,sizeof(match)); for(i=1;i<=n;i++) { scanf("%d",&x); while(x<=n){ map[i][x]=1; x+=k; } } m=n; if(solve()==n) printf("Jerry "); else printf("Tom "); } return 0; }
版权声明:本文博客原创文章。博客,未经同意,不得转载。