UVA1194
POJ1325
POJ要多判一个非零!!!
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
vector<int>e[105];
int vis[105];
int link[105];
int t;
int find(int x)
{for(int i=0;i<e[x].size();i++){int y=e[x][i];if(vis[y]!=t){vis[y]=t;if(link[y]==0||find(link[y])){link[y]=x;return 1;}}}return 0;
}
int main()
{int n,m,k;while(scanf("%d%d%d",&n,&m,&k)==3&&n!=0){memset(link,0,sizeof(link));memset(vis,0,sizeof(vis));t=0;for(int i=1;i<=100;i++)e[i].clear();int num,x,y;for(int i=1;i<=k;i++){scanf("%d%d%d",&num,&x,&y);if(x&&y)e[x].push_back(y);}int ans=0;for(int i=1;i<=n;i++){t++;if(find(i)){ans++;}//else//break;}printf("%d\n",ans);}return 0;
}