Pagini recente » Cod sursa (job #2657877) | Cod sursa (job #446452) | Cod sursa (job #583021) | Cod sursa (job #277810) | Cod sursa (job #2776791)
#include<bits/stdc++.h>
#define N 10000
using namespace std;
ifstream f("cuplaj.in");
ofstream g("cuplaj.out");
int n,m,k,i,C,R[N],L[N],x,y;
vector<int> v[N];
bitset<N> T;
int P(int n)
{
if(T[n])
return 0;
T[n]=1;
for(auto j:v[n])
if(!L[j])
return L[j]=n,R[n]=j;
for(auto j:v[n])
if(P(L[j]))
return L[j]=n,R[n]=j;
return 0;
}
int main()
{
f>>n>>m>>k;
for(i=1;i<=k;++i)
f>>x>>y,v[x].push_back(y);
for(i=1;i<=n;++i)
if(!R[i]&&P(i))
++C,T=0;
g<<C<<'\n';
for(i=1;i<=n;++i)
if(R[i])
g<<i<<" "<<R[i]<<'\n';
return 0;
}