UVa 422 - Word-Search Wonder Solution

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int l;
vector<vector<char> > a;
string s;
void check(){
    vector<vector<int> > d={{0,1},{1,0},{0,-1},{1,1},{-1,-1},{-1,1},{1,-1}};
    for(int i=0;i<l;i++){
        for(int j=0;j<l;j++){
            for(int k=0;k<7;k++){
                int x=i,y=j,idx=0;
                while(idx<s.size()&&x>-1&&x<l&&y>-1&&y<l&&s[idx]==a[x][y]){
                    idx++;
                    x+=d[k][0],y+=d[k][1];
                }
                if(idx==s.size()){
                    cout<<i+1<<','<<j+1<<' '<<x-d[k][0]+1<<','<<y-d[k][1]+1<<endl;
                    return;
                }
            }
        }
    }
    cout<<"Not found"<<endl;
    return;
}
int main(){
    cin>>l;
    a.assign(l,vector<char>(l));
    for(int i=0;i<l;i++){
        ws(cin);
        for(int j=0;j<l;j++)
            cin>>a[i][j];
    }
    while(cin>>s&&s!="0"){
        check();
    }
}

Comments