// zadacha 1.cpp : Defines the entry point for the console application. // //#include "stdafx.h" #include #include #include #include #include #include #include #include using namespace std; int n; int all, DoSega=0; int counter = 1; int k; int x1; int Y1; int x2; int y2; int a[1000][1000]; int solution() { int tempX = x1; int tempY = Y1; if (tempX - 2 >= 0 && tempY - 1 >= 0 && a[tempX-2][tempY-1]!=-2) a[tempX - 2][tempY - 1] = 1; if (tempX - 2 >= 0 && tempY + 1 >= 0 && a[tempX - 2][tempY + 1] != -2) a[tempX - 2][tempY + 1] = 1; if (tempX + 2 >= 0 && tempY + 1 >= 0 && a[tempX + 2][tempY + 1] != -2) a[tempX + 2][tempY + 1] = 1; if (tempX + 2 >= 0 && tempY - 1 >= 0 && a[tempX + 2][tempY - 1] != -2) a[tempX - 2][tempY - 1] = 1; while (DoSega= 0 && tempY - 1 >= 0 && a[tempX - 2][tempY - 1] != -2) if (a[tempX - 2][tempY - 1] > counter) a[tempX - 2][tempY - 1] = counter; if (tempX - 2 >= 0 && tempY + 1 <= n && a[tempX - 2][tempY + 1] != -2) if(a[tempX - 2][tempY + 1] > counter) a[tempX - 2][tempY + 1] = counter; if (tempX + 2 <= n && tempY + 1 <= n && a[tempX + 2][tempY + 1] != -2) if(a[tempX + 2][tempY + 1] > counter) a[tempX + 2][tempY + 1] = counter; if (tempX + 2 <= n && tempY - 1 >= 0 && a[tempX + 2][tempY - 1] != -2) if(a[tempX - 2][tempY - 1]>counter) a[tempX - 2][tempY - 1] = counter; } } } counter++; } } int main() { ifstream myfile; myfile.open("chess.in"); n << myfile.get(); k << myfile.get(); x1 << myfile.get(); Y1 << myfile.get(); x2 << myfile.get(); y2 << myfile.get(); for (int i = 0; i < n; i++) { for (int z = 0; z < n; z++) { a[i][z] = myfile.get(); if (a[i][z] == 1) { a[i][z] = -2; DoSega++; } else { a[i][z] = -1; } } } myfile.close(); ofstream myfile2; myfile2.open("chess.out"); all = n * n; a[x1][Y1] = 0; DoSega++; int value = solution(); if (value <= k && (k-value)%2==0) { myfile2 << "Yes\n"; } else { myfile2 << "No\n"; } myfile2.close(); return 0; }