| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
谁有我的麻烦#include <iostream>
using namespace std;
char a[101][101];
char word[101];
int result;
int n;
int search(char a[101][101], char word[101], int x, int y, int w, int flag){
//cout<<strlen(a[1]);
if(a[x][y] == word[w]){
//cout<<"a[x][y],word[w]::"<<x<<y<<w<<flag<<"::"<<a[x][y]<<"::"<<word[w]<<endl;
int w_len = strlen(word);
if(w_len==w+1) {
if(100==flag) cout<<x+1<<","<<y+1<<" "<<x+1<<","<<y+1<<endl;
else if(0==flag) cout<<x+1<<","<<y+2-w_len<<" "<<x+1<<","<<y+1<<endl;
else if(1==flag) cout<<x+2-w_len<<","<<y+1<<" "<<x+1<<","<<y+1<<endl;
else if(2==flag) cout<<x+2-w_len<<","<<y+2-w_len<<" "<<x+1<<","<<y+1<<endl;
else if(3==flag) cout<<x+w_len<<","<<y+1<<" "<<x+1<<","<<y+1<<endl;
else if(4==flag) cout<<x+w_len<<","<<y+2-w_len<<" "<<x+1<<","<<y+1<<endl;
else if(5==flag) cout<<x+1<<","<<y+w_len<<" "<<x+1<<","<<y+1<<endl;
else if(6==flag) cout<<x+w_len<<","<<y+w_len<<" "<<x+1<<","<<y+1<<endl;
else if(7==flag) cout<<x+2-w_len<<","<<y+w_len<<" "<<x+1<<","<<y+1<<endl;
result = 1;
return 1;//OK
};
if(0==flag || 100==flag)
//右边
if((strlen(a[x])-y)>=(w_len-w)) search(a,word,x,y+1,w+1,0);
if(1==flag || 100==flag)
//下边
if((n-x)>=(w_len-w)) search(a,word,x+1,y,w+1,1);
if(2==flag || 100==flag)
//右下
if((strlen(a[x])-y)>=(w_len-w) && (n-x)>=(w_len-w)) search(a,word,x+1,y+1,w+1,2);
//上边
if(3==flag || 100==flag)
if(x>=(w_len-1-w)) search(a,word,x-1,y,w+1,3);
//右上
if(4==flag || 100==flag)
if((strlen(a[x])-y)>=(w_len-w) && x>=(w_len-1-w)) search(a,word,x-1,y+1,w+1,4);
//左边
if(5==flag || 100==flag)
if(y>=(w_len-1-w)) search(a,word,x,y-1,w+1,5);
//左上
if(6==flag || 100==flag)
if(x>=(w_len-1-w) && y>=(w_len-1-w)) search(a,word,x-1,y-1,w+1,6);
//左下
if(7==flag || 100==flag)
if((n-x)>=(w_len-w) && y>=(w_len-1-w)) search(a,word,x+1,y-1,w+1,7);
}
};
int main(){
int i,j;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
// for(i=0;i<n;i++)
// cout<<strlen(a[i]);
while(cin>>word) {
result=0;
if(word[0]=='0' && strlen(word)==1) break;
for(i=0;i<n;i++)
for( j=0;j<n;j++)
search(a,word,i,j,0,100);
//cout<<"result: "<<result<<endl;
if(!result) cout<<"Not found"<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator