Untitled
unknown
plain_text
3 years ago
1.2 kB
11
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...