結果
問題 |
No.228 ゆきこちゃんの 15 パズル
|
ユーザー |
|
提出日時 | 2019-08-09 14:34:03 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 924 bytes |
コンパイル時間 | 1,983 ms |
コンパイル使用メモリ | 193,384 KB |
最終ジャッジ日時 | 2025-01-07 11:11:11 |
ジャッジサーバーID (参考情報) |
judge3 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 17 |
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { int a[4][4]; for (int i=0;i<4;i++) for (int j=0;j<4;j++) a[i][j]=4*i+j+1; a[3][3]=0; int b[4][4]; for (int i=0;i<4;i++) for (int j=0;j<4;j++) cin>>b[i][j]; int dy[]={0,1,0,-1}; int dx[]={1,0,-1,0}; int x=3; int y=3; while (true) { bool did=false; for (int i=0;i<4;i++) { int ny=y+dy[i]; int nx=x+dx[i]; if (ny<0||4<=ny||nx<0||4<=nx||a[ny][nx]!=b[y][x]) continue; swap(a[y][x],a[ny][nx]); y=ny; x=nx; did=true; break; } if (!did) break; } for (int i=0;i<4;i++) for (int j=0;j<4;j++) if (a[i][j]!=b[i][j]) { puts("No"); return 0; } puts("Yes"); return 0; }