C lang:
#include<stdio.h>
#include<stdlib.h>
char mat[50][50],str[50];
int presentInRange(int sRow,int sCol,int eRow,int eCol)
{
char original[50],reverse[50];
memset(reverse,'\0',sizeof(char)*50);
memset(original,'\0',sizeof(char)*50);
int l=0,k=abs(sRow-eRow)+abs(sCol-eCol);
for(int i=sRow;i<=eRow;i++)
{
for(int j=sCol;j<=eCol;j++)
{
original[l++]=mat[i][j];
reverse[k--]=mat[i][j];
}
}
return strstr(original,str)!=NULL || strstr(reverse,str)!=NULL;
}
int main()
{int R,C;
scanf("%d %d\n",&R,&C);
for(int i=0;i<R;i++)
{
for(int j=0;j<C;j++)
{
scanf("%c ",&mat[i][j]);
}
}
scanf("%s",str);
if(presentInRange(0,0,0,C-1))printf("Top");
else if(presentInRange(0,C-1,R-1,C-1))printf("Right");
else if(presentInRange(R-1,0,R-1,C-1))printf("Bottom");
else if(presentInRange(0,0,R-1,0))printf("Left");
else printf("-1");
}
Post a Comment