Pagini recente » Cod sursa (job #2726852) | Cod sursa (job #952667) | Cod sursa (job #1816612) | Cod sursa (job #3201824) | Cod sursa (job #953145)
Cod sursa(job #953145)
#include <fstream>
#include <vector>
using namespace std;
ifstream fi("cuplaj.in");
ofstream fo("cuplaj.out");
int i,nr,n,m,e,x,y,viz[10001],l[10001],r[10001];
vector< int > g[10001];
vector< int >::iterator it;
int p(int x)
{
if (viz[x]) return 0;
viz[x]=1;
for (size_t k=0; k<g[x].size(); k++)
{
if (!r[g[x][k]] || p(r[g[x][k]]))
{
l[x]=g[x][k]; r[g[x][k]]=x;
return 1;
}
}
return 0;
}
int main()
{
fi >> n >> m >> e;
while (e--)
{
fi >> x >> y;
g[x].push_back(y);
}
int ok=1;
while (ok)
{
ok=0;
for (i=1; i<=n; i++) viz[i]=0;
for (i=1; i<=n; i++)
{
if (!l[i] && p(i))
nr++,ok=1;
}
}
fo << nr << endl;
for (i=1; i<=n; i++)
if (l[i])
fo << i << ' ' << l[i] << endl;
return 0;
}