Untitled

 avatar
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...