输入输出样例
输入样例#1: 复制
3 1 1 1 2 1 1 1 1 1
输出样例#1: 复制
4 2 1
#include <iostream>
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll maxn = 1e9+7;
const ll maxn1=1e3+7;
bool u[maxn1],x[1000][1000];
ll g[maxn1];
ll n,m,e;
bool fin(int x1)
{
for(ll j=1;j<=m;j++)
{
if(x[x1][j]==true&&u[j]==false)
{
u[j]=true;
if(g[j]==0||fin(g[j]))
{
g[j]=x1;
return true;
}
}
}
return false;
}
int main()
{
ll a1=0;
scanf("%lld %lld %lld",&n,&m,&e);
memset(x,false,sizeof(x));
for(ll i=1;i<=e;i++)
{
ll x1,y;
scanf("%lld %lld",&x1,&y);
if(y>m)
{
continue;
}
x[x1][y]=1;
}
for(ll i=1;i<=n;i++)
{
memset(u,false,sizeof(u));
if(fin(i))
{
a1++;
}
}
printf("%d",a1);
return 0;
}