#include #include #include #include #include #include using namespace std; int main() { int board[4][4]; int num; int x, y; for (int i = 0; i < 16; i++) { cin >> num; if (num == 0) { x = i % 4; y = i / 4; } board[i / 4][i % 4] = num; } int dx[4] = {0,1,0,-1}; int dy[4] = {1,0,-1,0}; int nx, ny; while (x != 3 || y != 3) { num = x + y * 4 + 1; bool change = false; for (int j = 0; j < 4; j++) { nx = x + dx[j]; ny = y + dy[j]; if (nx < 0 || 3 < nx || ny < 0 || 3 < ny) { continue; } if (board[ny][nx] == num) { swap(board[y][x], board[ny][nx]); change = true; x = nx; y = ny; break; } } if (!change) { break; } } for (int i = 0; i < 16; i++) { if (board[i / 4][i % 4] != (i + 1) % 16) { cout << "No" << endl; return 0; } } cout << "Yes" << endl; return 0; }