Pagini recente » Cod sursa (job #949119) | Cod sursa (job #1280407) | Cod sursa (job #1679633) | Cod sursa (job #1629145) | Cod sursa (job #3345190)
#include <bits/stdc++.h>
using namespace std;
vector <int> v[10555];
int f[10555];
int l[10555],r[10555];
int el;
bool dfs(int k)
{
for(auto a:v[k])
{
if(f[a]!=el)
{
f[a]=el;
if(r[a]==0 || dfs(r[a]))
{
l[k]=a;
r[a]=k;
return true;
}
}
}
return false;
}
int main()
{
ifstream cin("cuplaj.in");
ofstream cout("cuplaj.out");
int n,m,k,x,y;
cin>>n>>m>>k;
for(int i=1;i<=k;++i)
{
cin>>x>>y;
v[x].push_back(y);
}
int cnt=0;
for(int i=1;i<=n;++i)
{
el=i;
if(dfs(i))
{
++cnt;
}
}
cout<<cnt<<"\n";
for(int i=1;i<=n;++i)
{
if(l[i])
{
cout<<i<<" "<<l[i]<<"\n";
}
}
return 0;
}