Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- char word[30][30];
- char findd[20];
- int n,m;
- void findword(int r,int c,int l,int maxr,int maxc,int di,int posr,int posc)
- {
- if(di==0)
- {
- if(r+1>=l&&c+1>=l) findword(r,c,l,maxr,maxc,1,posr,posc);
- if(r+1>=l) findword(r,c,l,maxr,maxc,2,posr,posc);
- if(r+1>=l&&maxc-c+1>=l) findword(r,c,l,maxr,maxc,3,posr,posc);
- if(c+1>=l) findword(r,c,l,maxr,maxc,4,posr,posc);
- if(maxc-c+1>=l) findword(r,c,l,maxr,maxc,6,posr,posc);
- if(maxr-r+1>=l&&c+1>=l) findword(r,c,l,maxr,maxc,7,posr,posc);
- if(maxr-r+1>=l) findword(r,c,l,maxr,maxc,8,posr,posc);
- if(maxr-r+1>=l&&maxc-c+1>=l) findword(r,c,l,maxr,maxc,9,posr,posc);
- }
- else
- {
- int cou=0;
- if(di==1)
- {
- for(int i=0;i<l;i++)
- {
- if(findd[i]==word[r][c])
- {
- r--;
- c--;
- }
- else
- {
- return;
- }
- }
- printf("%d %d\n",posr+1,posc+1);
- return;
- }
- else if(di==2)
- {
- for(int i=0;i<l;i++)
- {
- if(findd[i]==word[r][c])
- {
- r--;
- //c--;
- }
- else
- {
- return;
- }
- }
- printf("%d %d\n",posr+1,posc+1);
- return;
- }
- else if(di==3)
- {
- for(int i=0;i<l;i++)
- {
- if(findd[i]==word[r][c])
- {
- r--;
- c++;
- }
- else
- {
- return;
- }
- }
- printf("%d %d",posr+1,posc+1);
- return;
- }
- else if(di==4)
- {
- for(int i=0;i<l;i++)
- {
- if(findd[i]==word[r][c])
- {
- //r--;
- c--;
- }
- else
- {
- return;
- }
- }
- printf("%d %d\n",posr+1,posc+1);
- return;
- }
- else if(di==6)
- {
- for(int i=0;i<l;i++)
- {
- if(findd[i]==word[r][c])
- {
- //r--;
- c++;
- }
- else
- {
- return;
- }
- }
- printf("%d %d\n",posr+1,posc+1);
- return;
- }
- else if(di==7)
- {
- for(int i=0;i<l;i++)
- {
- if(findd[i]==word[r][c])
- {
- r++;
- c--;
- }
- else
- {
- return;
- }
- }
- printf("%d %d\n",posr+1,posc+1);
- return;
- }
- else if(di==8)
- {
- for(int i=0;i<l;i++)
- {
- if(findd[i]==word[r][c])
- {
- r++;
- //c--;
- }
- else
- {
- return;
- }
- }
- printf("%d %d\n",posr+1,posc+1);
- return;
- }
- else if(di==9)
- {
- for(int i=0;i<l;i++)
- {
- if(findd[i]==word[r][c])
- {
- r++;
- c++;
- }
- else
- {
- return;
- }
- }
- printf("%d %d\n",posr+1,posc+1);
- return;
- }
- }
- }
- int main()
- {
- scanf(" %d %d",&n,&m);
- for(int i=0;i<n;i++)
- {
- for(int j=0;j<m;j++)
- {
- scanf(" %c",&word[i][j]);
- if(word[i][j]>=65&&word[i][j]<=90)
- {
- word[i][j]+=32;
- }
- }
- }
- int nw;
- scanf(" %d",&nw);
- int l;
- for(int i=0;i<nw;i++)
- {
- scanf(" %s",findd);
- l=strlen(findd);
- for(int j=0;j<l;j++)
- {
- if(findd[j]>=65&&findd[j]<=90)
- {
- findd[j]=findd[j]+32;
- }
- }
- for(int j=0;j<n;j++)
- {
- for(int k=0;k<m;k++)
- {
- if(word[j][k]==findd[0])
- {
- findword(j,k,l,n,m,0,j,k);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement