#include main() { int n=8; int m, w, r; int wmr[n+1][n+1],mwr[n+1][n+1],rmw[n+1][n+1],rwm[n+1][n+1]; int x[n+1],y[n+1],single[n+1]; void print() { int m, rm, rw; rm=0; rw=0; for (m=1;m<=n;m++) { printf("%4d",x[m]); rm=rm+rmw[m][x[m]]; rw=rw+rwm[x[m]][m]; } printf("%8d %4d\n",rm,rw); } void try(int m) { int r,w; int stable() { int pm, pw, i, lim, s; s=1; i=1; while (irwm[pw][y[pw]]; } i=1; lim=rwm[w][m]; while (irmw[pm][x[pm]]; } return s; } for (r=1;r<=n;r++) { w=wmr[m][r]; if (single[w]) if (stable()) { x[m]=w; y[w]=m; single[w]=0; if (m