10010 - Where's Waldorf?
来源:互联网 发布:平面设计书籍 知乎 编辑:程序博客网 时间:2024/04/26 09:18
#include <iostream>#include <cstring>using namespace std;int main(){ int num,cl,r,i,j,count,flag; int ii,jj,_i,_j; int n,m; char str[55][55],w[55]; char c; cin>>num; while(num--) { cin>>cl>>r; memset(str,0,sizeof(str)); memset(w,0,sizeof(w)); for(i=0; i<cl; i++) { for(j=0; j<r; j++) { cin>>c; if('A'<=c&&c<='Z') str[i][j]=c+32; else if('a'<=c&&c<='z') str[i][j]=c; } } cin>>count; while(count--) { ii=jj=0; flag=-1; cin>>w; m=strlen(w); for(i=0; i<m; i++) if(w[i]>='A'&&w[i]<='Z') w[i]=w[i]+32; while(1) { n=-1; for(i=ii; i<cl; i++) { if(i-ii!=0) j=0; else j=jj; for(; j<r; j++) if(w[0]==str[i][j]) { n=0; break; } if(n==0) break; } if(jj<r-1) { jj=j+1; ii=i; } else { jj=0; ii=i+1; } _i=i; _j=j; if(flag==-1) { for(int _l=1; _l<m; _l++) { _i--; _j--; if(_i<0||_j<0) break; if(str[_i][_j]!=w[_l]) { flag=-1; break; } else { if(_l==m-1) flag=0; } } } _i=i; _j=j; if(flag==-1) for(int _l=1; _l<m; _l++) { _i--; if(_i<0) break; if(str[_i][_j]!=w[_l]) { flag=-1; break; } else { if(_l==m-1)flag=0; } } _i=i; _j=j; if(flag==-1) for(int _l=1; _l<m; _l++) { _i--; _j++; if(_i<0||_j>=r) break; if(str[_i][_j]!=w[_l]) { flag=-1; break; } else { if(_l==m-1)flag=0; } } _i=i; _j=j; if(flag==-1) for(int _l=1; _l<m; _l++) { _j--; if(_j<0) break; if(str[_i][_j]!=w[_l]) { flag=-1; break; } else { if(_l==m-1)flag=0; } } _i=i; _j=j; if(flag==-1) for(int _l=1; _l<m; _l++) { _j++; if(_j>=r) break; if(str[_i][_j]!=w[_l]) { flag=-1; break; } else { if(_l==m-1) flag=0; } } _i=i; _j=j; if(flag==-1) for(int _l=1; _l<m; _l++) { _i++; _j--; if(_i>=cl||_j<0) break; if(str[_i][_j]!=w[_l]) { flag=-1; break; } else { if(_l==m-1) flag=0; } } _i=i; _j=j; if(flag==-1) for(int _l=1; _l<m; _l++) { _i++; if(_i>=cl) break; if(str[_i][_j]!=w[_l]) { flag=-1; break; } else { if(_l==m-1) flag=0; } } _i=i; _j=j; if(flag==-1) for(int _l=1; _l<m; _l++) { _i++; _j++; if(_i>=cl||_j>=r) break; if(str[_i][_j]!=w[_l]) { flag=-1; break; } else { if(_l==m-1) flag=0; } } if(flag==0) { cout<<i+1<<" "<<j+1<<endl; memset(w,0,sizeof(w)); break; } } } if(num>0) cout<<endl; } return 0;}