Extended Lights Out #include <stdio.h> int pa[6][8],pr[6][8]; int guess(){ int c, r; for ( r = 1; r < 5; r++ ) for ( c = 1; c < 7; c++ ) pr[r+1][c] = (pa[r][c] + pr[r][c] + pr[r-1][c] + pr[r][c-1] + pr[r][c+1]) % 2; for(c=1; c<7; c++) if ( (pr[5][c-1] + pr[5][c] + pr[5][c+1] + pr[4][c]) % 2 != pa[5][c] ) return 0; return 1 ; } void en( ){ int c; for ( c = 1; c < 7; c++) pr[1][c] = 0; while( guess() == 0 ) { pr[1][1]++; c = 1; while ( pr[1][c] > 1 ) { pr[1][c] = 0; c++; pr[1][c]++; } } return; } int main() { int i,j,num,ii,r; scanf("%d",&num); for(ii=1; ii<=num; ii++){ for(j=1; j<7; j++) pr[0][j]=0; for ( r = 0; r < 6; r++ ) pr[r][0] = pr[r][7] = 0; for(i=1; i<6; i++) for(j=1; j<7; j++) scanf("%d",&pa[i][j]); en(); printf("PUZZLE #%d/n",ii); for(i=1; i<6; i++){ for(j=1; j<7; j++){ if(j!=6) printf("%d ",pr[i][j]); else printf("%d",pr[i][j]); } printf("/n"); } } return 0; }