#include #include #include #include #include #include using namespace std; #define maxn MAXN const int MAXN = 508; int G[MAXN][MAXN]; int mx[maxn],my[maxn]; int used[MAXN]; int ansX[maxn],ansY[maxn]; int delX,delY; struct per { int dislike[maxn]; int like; int dp; }; per person[maxn]; int X[maxn],Y[maxn]; int nx,ny; int shuchu[maxn]; int shuchu2[maxn]; #define clr(x) memset(x,0,sizeof(int)*MAXN) #define _clr(x) memset(x,0xff,sizeof(int)*MAXN) int hungray(int m,int n,int mat[][maxn],int *match1,int *match2) { int s[maxn],t[maxn],p,q,ret=0,i,j,k; for(_clr(match1),_clr(match2),i=0;i=0)) for(_clr(t),s[p=q=0]=i;p<=q&&match1[i]<0;p++) for(k=s[p],j=0;j=0;j=p) match2[j]=k=t[j],p=match1[k],match1[k]=j; } return ret; } bool Find(int v) { for(int u=0;ua) { X[nx++]=i; } else { Y[ny++]=i; } person[i].like=like; scanf("%d",&person[i].dp); for(int j=0;j0) { shuchu2[ipsc2++]=shuchu[0]; } for(int t=1;t