Untitled
unknown
plain_text
4 years ago
1.2 kB
15
Indexable
#include<bits/stdc++.h>
using namespace std;
int mat[15][15], mark[15][15][105];
pair<int, int> ans[15][15][105], path[105];
int main() {
for (int i = 1; i <= 10; i++)
for (int j = 1; j <= 10; j++)
cin >> mat[i][j];
if (mat[1][1] == 0) mark[1][1][1] = 1;
for (int k = 2; k <= 100; k++)
for (int i = 1; i <= 10; i++)
for (int j = 1; j <= 10; j++)
if (mat[i][j] == 0) {
if (mark[i - 1][j][k - 1] == 1) {
mark[i][j][k] = 1;
ans[i][j][k] = {i - 1, j};
}
else if (mark[i + 1][j][k - 1] == 1) {
mark[i][j][k] = 1;
ans[i][j][k] = {i + 1, j};
}
else if (mark[i][j - 1][k - 1] == 1) {
mark[i][j][k] = 1;
ans[i][j][k] = {i, j - 1};
}
else if (mark[i][j + 1][k - 1] == 1) {
mark[i][j][k] = 1;
ans[i][j][k] = {i, j + 1};
}
}
for (int k = 1; k <= 100; k++)
if (mark[10][10][k]) {
pair<int, int> khane = {10, 10};
for (int l = k; l > 0; l--) {
path[l] = khane;
khane = {ans[khane.first][khane.second][l]};
}
cout << "YES" << endl;
for (int l = 1; l <= k; l++)
cout << path[l].first << ' ' << path[l].second << endl;
return 0;
}
cout << "NO" << endl;
}
Editor is loading...