Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. char word[30][30];
  4. char findd[20];
  5. int n,m;
  6. void findword(int r,int c,int l,int maxr,int maxc,int di,int posr,int posc)
  7. {
  8. if(di==0)
  9. {
  10. if(r+1>=l&&c+1>=l) findword(r,c,l,maxr,maxc,1,posr,posc);
  11. if(r+1>=l) findword(r,c,l,maxr,maxc,2,posr,posc);
  12. if(r+1>=l&&maxc-c+1>=l) findword(r,c,l,maxr,maxc,3,posr,posc);
  13. if(c+1>=l) findword(r,c,l,maxr,maxc,4,posr,posc);
  14. if(maxc-c+1>=l) findword(r,c,l,maxr,maxc,6,posr,posc);
  15. if(maxr-r+1>=l&&c+1>=l) findword(r,c,l,maxr,maxc,7,posr,posc);
  16. if(maxr-r+1>=l) findword(r,c,l,maxr,maxc,8,posr,posc);
  17. if(maxr-r+1>=l&&maxc-c+1>=l) findword(r,c,l,maxr,maxc,9,posr,posc);
  18. }
  19. else
  20. {
  21. int cou=0;
  22. if(di==1)
  23. {
  24. for(int i=0;i<l;i++)
  25. {
  26. if(findd[i]==word[r][c])
  27. {
  28. r--;
  29. c--;
  30. }
  31. else
  32. {
  33. return;
  34. }
  35. }
  36. printf("%d %d\n",posr+1,posc+1);
  37. return;
  38. }
  39. else if(di==2)
  40. {
  41. for(int i=0;i<l;i++)
  42. {
  43. if(findd[i]==word[r][c])
  44. {
  45. r--;
  46. //c--;
  47. }
  48. else
  49. {
  50. return;
  51. }
  52. }
  53. printf("%d %d\n",posr+1,posc+1);
  54. return;
  55. }
  56. else if(di==3)
  57. {
  58. for(int i=0;i<l;i++)
  59. {
  60. if(findd[i]==word[r][c])
  61. {
  62. r--;
  63. c++;
  64. }
  65. else
  66. {
  67. return;
  68. }
  69. }
  70. printf("%d %d",posr+1,posc+1);
  71. return;
  72. }
  73. else if(di==4)
  74. {
  75. for(int i=0;i<l;i++)
  76. {
  77. if(findd[i]==word[r][c])
  78. {
  79. //r--;
  80. c--;
  81. }
  82. else
  83. {
  84. return;
  85. }
  86. }
  87. printf("%d %d\n",posr+1,posc+1);
  88. return;
  89. }
  90. else if(di==6)
  91. {
  92. for(int i=0;i<l;i++)
  93. {
  94. if(findd[i]==word[r][c])
  95. {
  96. //r--;
  97. c++;
  98. }
  99. else
  100. {
  101. return;
  102. }
  103. }
  104. printf("%d %d\n",posr+1,posc+1);
  105. return;
  106. }
  107. else if(di==7)
  108. {
  109. for(int i=0;i<l;i++)
  110. {
  111. if(findd[i]==word[r][c])
  112. {
  113. r++;
  114. c--;
  115. }
  116. else
  117. {
  118. return;
  119. }
  120. }
  121. printf("%d %d\n",posr+1,posc+1);
  122. return;
  123. }
  124. else if(di==8)
  125. {
  126. for(int i=0;i<l;i++)
  127. {
  128. if(findd[i]==word[r][c])
  129. {
  130. r++;
  131. //c--;
  132. }
  133. else
  134. {
  135. return;
  136. }
  137. }
  138. printf("%d %d\n",posr+1,posc+1);
  139. return;
  140. }
  141. else if(di==9)
  142. {
  143. for(int i=0;i<l;i++)
  144. {
  145. if(findd[i]==word[r][c])
  146. {
  147. r++;
  148. c++;
  149. }
  150. else
  151. {
  152. return;
  153. }
  154. }
  155. printf("%d %d\n",posr+1,posc+1);
  156. return;
  157. }
  158. }
  159. }
  160. int main()
  161. {
  162.  
  163. scanf(" %d %d",&n,&m);
  164. for(int i=0;i<n;i++)
  165. {
  166. for(int j=0;j<m;j++)
  167. {
  168. scanf(" %c",&word[i][j]);
  169. if(word[i][j]>=65&&word[i][j]<=90)
  170. {
  171. word[i][j]+=32;
  172. }
  173. }
  174. }
  175. int nw;
  176. scanf(" %d",&nw);
  177. int l;
  178. for(int i=0;i<nw;i++)
  179. {
  180. scanf(" %s",findd);
  181. l=strlen(findd);
  182. for(int j=0;j<l;j++)
  183. {
  184. if(findd[j]>=65&&findd[j]<=90)
  185. {
  186. findd[j]=findd[j]+32;
  187. }
  188. }
  189. for(int j=0;j<n;j++)
  190. {
  191. for(int k=0;k<m;k++)
  192. {
  193. if(word[j][k]==findd[0])
  194. {
  195. findword(j,k,l,n,m,0,j,k);
  196. }
  197. }
  198. }
  199.  
  200. }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement