Pagini recente » Cod sursa (job #2832232) | Cod sursa (job #2830253) | Cod sursa (job #1676041) | Cod sursa (job #339) | Cod sursa (job #1630167)
#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,O=-1,t=1;
vector<int> v[N];
bitset<N> T;
int P(int n)
{
if (T[n])return 0;
T[n]=1;
for (int j=0;i<v[n].size();++j)
if (!L[v[n][j]]||P(L[v[n][j]])){
L[v[n][j]]=n,R[n]=v[n][j];
return 1;
}
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;
}