int main() { int square[41][41]; int testcases; int i,j; int hatch,side; double min; int x,y; int flag; scanf("%d",&testcases); while(testcases--) { memset(square,0,sizeof(square)); flag=0; i=j=0; scanf("%d%d",&side,&hatch); for(i=0; i<hatch; i++) { scanf("%d%d",&x,&y); square[x][y]=1; } for(i=0; i<side; i++) { for(j=0; j<side; j++) { if(!square[i][j]) { min=mindis(square,i,j,side); if(!(min>i||min>j||min>side-i||min>side-j)) { printf("%d %d\n",i,j); flag=1; break; } } } if(flag==1) break; } if(i==side&&j==side) printf("poodle\n"); } return 0; }
void dijsktra(int src,int arr[20][20],int n) { int dist[n]; int i,j; for(i=0;i<n;i++){ dist[i] = INT_MAX; } int sptSet[n]; for(i=0;i<n;i++){ sptSet[i] = 0; } dist[src] = 0; for(i=0;i<n-1;i++){ int u = mindis(dist,sptSet,n); sptSet[u] = 1; for(j=0;j<n;j++){ if(!sptSet[j] && arr[u][j] && dist[j]>(dist[u]+ arr[u][j])){ dist[j] = dist[u]+arr[u][j]; } } } print(dist,n); }