只通过了 Subtask 2,3
#include <bits/stdc++.h>
using namespace std;
int match[505],vis[505];
vector<int> e[505];
bool dfs(int u)
{
for(auto v : e[u])
{
if(vis[v]==1) continue;
vis[v]=1;
if(match[v]==0 || dfs(match[v]))
{
match[v]==u;
return true;
}
}
return false;
}
int main()
{
int n,m,es;
cin>>n>>m>>es;
for(int i=1;i<=es;i++)
{
int x,y;
cin>>x>>y;
e[x].push_back(y);
}
int ans=0;
for(int i=1;i<=n;i++)
{
memset(vis,0,sizeof(vis));
if(dfs(i)) ans++;
}
cout<<ans<<endl;
return 0;
}