#include #include using namespace std; int vizsgal(vector &v, unsigned long long game, unsigned int N) { bool jolesz = true; for (unsigned int i=(v[0]/5)*5; i < (v[0]/5)*5+5 ;i+= 1) { bool vanolyan = false; for (unsigned int j=0;j < 5 ;j+= 1) { if (v[j] == i) { vanolyan = true; break; } } if (vanolyan == false) jolesz = false; } if (jolesz) { cout << "Player " << v[0]/5 + 1 << " wins the game number " << game - 1 << ".\n"; return 1; } return 0; } int osztas(unsigned int N, unsigned int k) { if (k >= 0 && k <= 2*N-1) { k = 5*(k/2) + k % 2 ; return k;} if (k >= 2*N && k <= 4*N-1) { k = 5* ((k-2*N)/2)+ k % 2 +2; return k;} if (k >= 4*N && k <= 5*N-1) k = (k- (4 * N))*5 + 4; return k; } bool checkstate(vector &states, vector &v) { bool egyezik = true; for (unsigned int i=0;i> N; if (N == 0) return 0; vector v; vector temp(5,0); vector states; current = 0; vector ures(5,0); for (unsigned int i=0;i<5*N;i++) { f >> in; if (in > 0 && in < 6) v.push_back(i); } states = v; while (true) { current++; temp = ures; if (vizsgal(v,current,N)) break; for (unsigned int j=0; j < v.size();j++) { temp[j] = osztas(N,v[j]); } v = temp; if (checkstate(states,v)) break; } } return 0; } int main() { app(cin); return 0; }