#include using namespace std; int hang[50],lie[50],mp[50][50],ans,n; void dfs(int x,int y,int now,int num){ if (num==n) { ans=max(now,ans); return; } while (x<=n&&y<=n){ y++; if (y>n) { x++;y=1; } if (hang[x]!=0||lie[y]!=0||x==y) continue; hang[x]=1; lie[x]=1; hang[y]=1; lie[y]=1; dfs(x,y,now+mp[x][y],num+2); hang[x]=0; lie[x]=0; hang[y]=0; lie[y]=0; } } signed main () { cin>>n; for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) cin>>mp[i][j]; hang[0]=1; lie[0]=1; dfs(0,0,0,0); cout<