Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cstring>
- using namespace std;
- char a[107][107];
- char viz[107][107];
- int n;
- int ok=1;
- int di[8]={-1,-1,-1,0,1,1,1,0};
- int dj[8]={-1,0,1,1,1,0,-1,-1};
- char s[1000];
- int nrcuv;
- void citire()
- {
- for(int i=1; i<=n;i++)
- {
- for(int j=1; j<=n; j++)
- {
- cin>>a[i][j];
- }
- }
- for(int i=0;i<=n+1;i++)
- {
- for(int j=0;j<=n+1;j++)
- {
- viz[i][j]==0;
- }
- }
- }
- void bordare()
- {
- for(int i=0; i<=n+1;i++)
- {
- a[i][0]=a[i][n]=a[0][i]=a[n][i]='-';
- }
- }
- void f(int x, int y, int p)
- {
- if(p+1==strlen(s))
- {
- ok=1;
- }
- for(int i=0;i<8;i++)
- {
- int vi=x+di[i];
- int vj=y+dj[i];
- if(a[vi][vi]==s[p+1] && viz[vi][vj]==0)
- {
- viz[vi][vj]=1;
- f(vi,vj,p++);
- viz[vi][vj]=0;
- }
- }
- }
- void cuvant()
- {
- cin.getline(s,1000);
- }
- void m(char s[1000])
- {
- for(int i=0;i<n;i++)
- {
- for(int j=0;j<n;j++)
- {
- if(s[0]==a[i][j])
- f(i,j,0);
- if(ok==1)
- {
- cout<<"da";
- nrcuv--;
- if(nrcuv>0)
- {
- cin.getline (s, 1000);
- m(s);
- }
- }
- else
- {
- cout<<"nem";
- nrcuv--;
- if(nrcuv>0)
- {
- cin.getline (s, 1000);
- m(s);
- }
- }
- }
- }
- }
- int main()
- {
- cin>>nrcuv;
- cin>>n;
- citire();
- bordare();
- cin.getline(s,1000);
- m(s);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement