Created
February 13, 2017 11:11
-
-
Save saisumit/c02a114e7c1ea1b60d9ee2f039cd342f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <bits/stdc++.h> | |
using namespace std ; | |
/* When Panda is Life ! | |
_,add8ba, | |
,d888888888b, | |
d8888888888888b _,ad8ba,_ | |
d888888888888888) ,d888888888b, | |
I8888888888888888 _________ ,8888888888888b | |
__________`Y88888888888888P"""""""""""baaa,__ ,888888888888888, | |
,adP"""""""""""9888888888P""^ ^""Y8888888888888888I | |
,a8"^ ,d888P"888P^ ^"Y8888888888P' | |
,a8^ ,d8888' ^Y8888888P' | |
a88' ,d8888P' I88P"^ | |
,d88' d88888P' "b, | |
,d88' d888888' `b, | |
,d88' d888888I `b, | |
d88I ,8888888' ___ `b, | |
,888' d8888888 ,d88888b, ____ `b, | |
d888 ,8888888I d88888888b, ,d8888b, `b | |
,8888 I8888888I d8888888888I ,88888888b 8, | |
I8888 88888888b d88888888888' 8888888888b 8I | |
d8886 888888888 Y888888888P' Y8888888888, ,8b | |
88888b I88888888b `Y8888888^ `Y888888888I d88, | |
Y88888b `888888888b, `""""^ `Y8888888P' d888I | |
`888888b 88888888888b, `Y8888P^ d88888 | |
Y888888b ,8888888888888ba,_ _______ `""^ ,d888888 | |
I8888888b, ,888888888888888888ba,_ d88888888b ,ad8888888I | |
`888888888b, I8888888888888888888888b, ^"Y888P"^ ____.,ad88888888888I | |
88888888888b,`888888888888888888888888b, "" ad888888888888888888888' | |
8888888888888698888888888888888888888888b_,ad88ba,_,d88888888888888888888888 | |
88888888888888888888888888888888888888888b,`"""^ d8888888888888888888888888I | |
8888888888888888888888888888888888888888888baaad888888888888888888888888888' | |
Y8888888888888888888888888888888888888888888888888888888888888888888888888P | |
I888888888888888888888888888888888888888888888P^ ^Y8888888888888888888888' | |
`Y88888888888888888P88888888888888888888888888' ^88888888888888888888I | |
`Y8888888888888888 `8888888888888888888888888 8888888888888888888P' | |
`Y888888888888888 `888888888888888888888888, ,888888888888888888P' | |
`Y88888888888888b `88888888888888888888888I I888888888888888888' | |
"Y8888888888888b `8888888888888888888888I I88888888888888888' | |
"Y88888888888P `888888888888888888888b d8888888888888888' | |
^""""""""^ `Y88888888888888888888, 888888888888888P' | |
"8888888888888888888b, Y888888888888P^ | |
`Y888888888888888888b `Y8888888P"^ | |
"Y8888888888888888P `""""^ | |
`"YY88888888888P' | |
^""""""""' | |
*/ | |
#include <bits/stdc++.h> | |
#define REP(i, a, b) for (int i = a; i <= b; i++) | |
#define FOR(i, n) for (int i = 0; i < n; i++) | |
#define foreach(it, ar) for ( typeof(ar.begin()) it = ar.begin(); it != ar.end(); it++ ) | |
#define PI 3.1415926535897932385 | |
#define uint64 unsigned long long | |
#define Int long long | |
#define int64 long long | |
#define all(ar) ar.begin(), ar.end() | |
#define pb push_back | |
#define ff first | |
#define ss second | |
#define bit(n) (1<<(n)) | |
#define Last(i) ( (i) & (-i) ) | |
#define sq(x) ((x) * (x)) | |
#define mp make_pair | |
string str = "ALLIZZWELL" ; | |
int n , m ; | |
string A[ 101 ] ; | |
int N = 10 ; | |
bool f = false ; | |
void dfs( int i , int j , int idx , set<pair<int,int> > s ) | |
{ | |
// cout<<A[i][j] <<" " << idx<<endl; | |
if( f ) return ; | |
if( idx == N ){ f = true ; return ; } | |
if( i < 0 || i >= n || j < 0 || j >= m )return ; | |
if( s.find(mp(i,j)) != s.end() )return ; | |
if( A[i][j] != str[idx] )return ; | |
s.insert( mp(i,j ) ) ; | |
dfs( i + 1 , j , idx + 1 , s ) ; | |
dfs( i - 1 , j , idx + 1 , s ) ; | |
dfs( i , j + 1 , idx + 1 , s ) ; | |
dfs( i , j - 1 , idx + 1 , s ) ; | |
dfs( i - 1 , j - 1 , idx + 1 , s ) ; | |
dfs( i + 1 , j + 1 , idx + 1 , s ) ; | |
dfs( i + 1 , j - 1 , idx + 1 , s ) ; | |
dfs( i - 1 , j + 1 , idx + 1 , s ) ; | |
} | |
int main ( ) | |
{ | |
int t ; | |
scanf("%d",&t) ; | |
while( t-- ) | |
{ | |
f = false ; | |
scanf("%d%d",&n,&m) ; | |
FOR( i , n )cin >> A[i] ; | |
// FOR( i, n )cout<<A[i]<<'\n' ; | |
set<pair<int,int> > s ; | |
FOR( i , n ) | |
FOR( j , m ) | |
dfs( i , j , 0 , s ) ; | |
if( f ){ cout<<"YES"<<'\n'; } | |
else cout<<"NO"<<'\n' ; | |
// cin.ignore() ; | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment