/**
[二分图匹配] hunnu 10689 Antenna Placement
总数 - 匹配数
*/
#include <stdio.h>
#include <string.h>
char mat[41][11];
int id[41][11];
const int MAXN = 404;
int uN,vN;
bool g[MAXN][MAXN];
int xM[MAXN],yM[MAXN];
bool chk[MAXN];
int tot;
int move[][2] = {0,1,1,0,0,-1,-1,0};
bool dfs(int u)
{
for(int v = 0; v < vN; ++v)
if(g[u][v] && !chk[v])
{
chk[v] = 1;
if(yM[v] == -1 || dfs(yM[v]))
{
yM[v] = u;
xM[u] = v;
return 1;
}
}
return 0;
}
int MaxMatch()
{
int u,ret = 0;
memset(xM,-1,sizeof(xM));
memset(yM,-1,sizeof(yM));
for(u = 0; u < uN; ++u)