Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- char a[55][55];
- int x, y, n, m;
- bool found = false, visited[55][55];
- string s;
- void Visit(int u, int v) {
- visited[u][v] = true;
- if (!found) {
- /*
- if (a[u-1][v] == a[u][v])
- if (visited[u-1][v])
- {
- found = true;
- return;
- } else Visit(u-1, v);
- */
- if (a[u][v+1] == a[u][v])
- if (visited[u][v+1])
- {
- found = true;
- return;
- } else Visit(u, v+1);
- if (a[u+1][v] == a[u][v])
- if (visited[u+1][v])
- {
- found = true;
- return;
- } else Visit(u+1, v);
- /*
- if (a[u][v-1] == a[u][v])
- if (visited[u][v-1])
- {
- found = true;
- return;
- } else Visit(u, v-1);
- */
- }
- }
- int main() {
- #ifndef ONLINE_JUDGE
- freopen("cf510b.inp", "r", stdin);
- #endif // ONLINE_JUDGE
- scanf("%d%d", &n, &m); getline(cin, s);
- for (int i=1; i<=n; ++i)
- {
- getline(cin, s);
- for (int j=0; j<s.size(); ++j) a[i][j+1] = s[j];
- }
- for (int i=0; i<=n+1; ++i) a[i][0] = a[i][m+1] = '0';
- for (int i=0; i<=m+1; ++i) a[0][i] = a[n+1][i] = '0';
- memset(visited, false, sizeof(visited));
- for (int i=1; i<=n; ++i)
- {
- for (int j=1; j<=m; ++j)
- {
- if (a[i][j] != '0' && !visited[i][j]) Visit(i, j);
- if (found) break;
- }
- if (found) break;
- }
- if (!found) printf("No\n"); else printf("Yes\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment