#include<stdio.h> int findfather(char a[][1000],int i,int j,int n,int m,int t) { t--; if(a[i][j]=='F'&&t>=-1) { return 1; } else if(t<-1) { return 0; } else { if((a[i-1][j]=='.'||a[i-1][j]=='F')&&i-1>=0&&findfather(a,i-1,j,n,m,t)==1) { return 1; // printf("%d 1\n",u); } if(i+1<n&&(a[i+1][j]=='.'||a[i+1][j]=='F')&&findfather(a,i+1,j,n,m,t)==1) { return 1; // printf("%d 2\n",d); } if(j-1>=0&&(a[i][j-1]=='.'||a[i][j-1]=='F')&&findfather(a,i,j-1,n,m,t)==1) { return 1; // printf("%d 3\n",r); } if(j+1<m&&(a[i][j+1]=='.'||a[i][j+1]=='F')&&findfather(a,i,j+1,n,m,t)==1) { return 1; // printf("%d 4\n",l); } return 0; } return 0; } int main() { int n,m,t; while(scanf("%d %d %d",&n,&m,&t)!=EOF) { getchar(); char a[n][1000]; int flagi=0,flagj=0; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { scanf("%c",&a[i][j]); if(a[i][j]=='S') { flagi=i;flagj=j; } } getchar(); } // printf("%d %d\n",flagi,flagj); if(findfather(a,flagi,flagj,n,m,t)>0) printf("Happy\n"); else printf("Cry\n"); } } |
Double click to view unformatted code.