1class Solution {2public:3vector<int> prisonAfterNDays(vector<int> &cells, int N) {4if (N == 0) return cells;5prison(cells,61); // Prison cells for one day, The pattern repeats from day 1 - 147prison(cells, (N - 1) % 14); // Simply day 14 = day 1, Day 0 never repeats8// because of corners9return cells;10}11void prison(vector<int> &cells, const int &N) {12for (int i = 0; i < N; i++) {13vector<int> v(8, 0);14for (int i = 1; i < 7; i++)15if (cells[i - 1] == cells[i + 1])16v[i] = 1;17else18v[i] = 0;19cells = v;20}21}22};