#include <iostream> int data[8][5]={0}; int b[8][5]={0}; int m,n; int dy[3]={0,-1,1}; int k=0; int mon; int max; void dfs(int x,int y,int step) { if(step==n) { //printf("%d",mon); if(max<mon) max=mon; return; } for(int i=0;i<3;i++) { int nx=x-1; int ny=y+dy[i]; if(nx>=0&&nx<n&&ny>=0&&ny<5) { if(data[nx][ny]==1) { mon++; } if(data[nx][ny]==2) { mon--; } dfs(nx,ny,step+1); if(data[nx][ny]==1) { mon--; } if(data[nx][ny]==2) { mon++; } } } } int main() { freopen("input.txt","r",stdin); scanf("%d",&n); for(int i=0;i<n;i++) { for(int j=0;j<5;j++) { scanf("%d",&data[i][j]); } } printf("xx\n"); for(int q=0;q<n;q++) { for(int j=0;j<5;j++) { b[q][j]=data[q][j]; } } while(n-k>=5) { printf("*\n"); for(int i=0;i<n;i++) { for(int j=0;j<5;j++) { data[i][j]=b[i][j]; } } for(int i=n-k-1;i>=n-k-5;i--) { for(int j=0;j<5;j++) { if(data[i][j]==2) data[i][j]=0; } } for(int i=0;i<n;i++) { for(int j=0;j<5;j++) { printf("%d",data[i][j]); } printf("\n"); } k++; dfs(n,2,0); mon=0; } printf("%d",max); }