문제

링크

풀이

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
 
int a[64][5][5] = {
  { // 1
    {1, 0, 0, 0, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 1, 0, 0, 0},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {1, 0, 0, 0, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {1, 0, 0, 0, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0}
  },
  { // 2
    {0, 1, 0, 0, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 1, 0, 0},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0}
  },
  { // 3
    {0, 0, 1, 0, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 1, 0},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 1, 0},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 1, 0},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0}
  },
  { // 4
    {0, 0, 0, 1, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 1},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 1, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 1},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 1, 0},
    {1, 1, 1, 1, 0},
    {1, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 1},
    {0, 1, 1, 1, 1},
    {0, 1, 0, 0, 0}
  },
  { // 5
    {0, 1, 0, 0, 0},
    {1, 1, 1, 1, 0},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 1, 0, 0},
    {0, 1, 1, 1, 1},
    {0, 0, 1, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0},
    {1, 1, 1, 1, 0},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {0, 1, 1, 1, 1},
    {0, 0, 1, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0},
    {1, 1, 1, 1, 0},
    {0, 1, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {0, 1, 1, 1, 1},
    {0, 0, 1, 0, 0}
  },
  { // 6
    {0, 0, 1, 0, 0},
    {1, 1, 1, 1, 0},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 1, 0},
    {0, 1, 1, 1, 1},
    {0, 0, 1, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {1, 1, 1, 1, 0},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 1, 0},
    {0, 1, 1, 1, 1},
    {0, 0, 1, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {1, 1, 1, 1, 0},
    {0, 1, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 1, 0},
    {0, 1, 1, 1, 1},
    {0, 0, 1, 0, 0}
  },
  { // 7
    {0, 0, 1, 1, 1},
    {1, 1, 1, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 1, 1, 1},
    {1, 1, 1, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 1, 1, 1},
    {1, 1, 1, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 1, 1, 1},
    {1, 1, 1, 0, 0}
  },
  { // 8
    {0, 0, 1, 1, 0},
    {0, 1, 1, 0, 0},
    {1, 1, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 1, 1},
    {0, 0, 1, 1, 0},
    {0, 1, 1, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 1, 1, 0},
    {0, 1, 1, 0, 0},
    {1, 1, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 1, 1},
    {0, 0, 1, 1, 0},
    {0, 1, 1, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 1, 1, 0},
    {0, 1, 1, 0, 0},
    {1, 1, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 1, 1},
    {0, 0, 1, 1, 0},
    {0, 1, 1, 0, 0}
  },
  { // 9
    {0, 0, 1, 1, 0},
    {1, 1, 1, 0, 0},
    {1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 1, 1},
    {0, 1, 1, 1, 0},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 1, 1, 0},
    {1, 1, 1, 0, 0},
    {1, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 1, 1},
    {0, 1, 1, 1, 0},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 1, 1, 0},
    {1, 1, 1, 0, 0},
    {1, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 1, 1},
    {0, 1, 1, 1, 0},
    {0, 1, 0, 0, 0}
  },
  { // 10
    {1, 1, 0, 0, 0},
    {0, 1, 1, 1, 0},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 1, 1, 0, 0},
    {0, 0, 1, 1, 1},
    {0, 0, 1, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {1, 1, 0, 0, 0},
    {0, 1, 1, 1, 0},
    {0, 1, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 1, 1, 0, 0},
    {0, 0, 1, 1, 1},
    {0, 0, 1, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {1, 1, 0, 0, 0},
    {0, 1, 1, 1, 0},
    {0, 1, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 1, 1, 0, 0},
    {0, 0, 1, 1, 1},
    {0, 0, 1, 0, 0}
  },
  { // 11
    {0, 1, 0, 0, 0},
    {1, 1, 1, 0, 0},
    {0, 0, 1, 1, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 1, 0, 0},
    {0, 1, 1, 1, 0},
    {0, 0, 0, 1, 1},
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0},
    {1, 1, 1, 0, 0},
    {0, 0, 1, 1, 0},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {0, 1, 1, 1, 0},
    {0, 0, 0, 1, 1},
    {0, 0, 0, 0, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0},
    {1, 1, 1, 0, 0},
    {0, 0, 1, 1, 0}
  },
  {
    {0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0},
    {0, 1, 1, 1, 0},
    {0, 0, 0, 1, 1}
  }
};
 
inline void cycle(int &a, int &b, int &c, int &d) {
  int t = a; a = b; b = c; c = d; d = t;
}
 
inline void rotate(int id) {
  cycle(a[id][0][0], a[id][0][4], a[id][4][4], a[id][4][0]);
  cycle(a[id][0][1], a[id][1][4], a[id][4][3], a[id][3][0]);
  cycle(a[id][0][2], a[id][2][4], a[id][4][2], a[id][2][0]);
  cycle(a[id][0][3], a[id][3][4], a[id][4][1], a[id][1][0]);
  cycle(a[id][1][1], a[id][1][3], a[id][3][3], a[id][3][1]);
  cycle(a[id][1][2], a[id][2][3], a[id][3][2], a[id][2][1]);
}
 
inline void flip(int id) {
  for (int i=0; i<2; i++) for (int j=0; j<5; j++) {
    swap(a[id][i][j], a[id][4-i][j]);
  }
}
 
inline bool check(const vector<vector<int>> &v, int id) {
  bool b = true, c = true, d = true, e = true;
  for (int i=0; i<5; i++) for (int j=0; j<5; j++) {
    if (a[id][i][j] != v[i][j]) b = false;
    if (a[id][i][j] != v[i][j+1]) c = false;
    if (a[id][i][j] != v[i+1][j]) d = false;
    if (a[id][i][j] != v[i+1][j+1]) e = false;
  }
  return b || c || d || e;
}
 
bool solve(void) {
  vector<vector<int>> v(6, vector<int>(6));
  for (int i=0; i<6; i++) for (int j=0; j<6; j++) cin >> v[i][j];
 
  for (int i=0; i<64; i++) {
    for (int j=0; j<4; j++) {
      for (int k=0; k<2; k++) {
        if (check(v, i)) return true;
        flip(i);
      }
      rotate(i);
    }
  }
  return false;
}
 
int main(void) {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
 
  for (int i=0; i<3; i++) cout << (solve() ? "yes" : "no") << "\n";
  return 0;
}