Pagini recente » Cod sursa (job #3126026) | Cod sursa (job #2043719) | Cod sursa (job #2689335) | Cod sursa (job #2527730) | Cod sursa (job #864122)
Cod sursa(job #864122)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("cuplaj.in");
ofstream fout("cuplaj.out");
vector<int> v[10001];
vector<bool> used;
int n,m,E,x,y,l[10001],r[10001],sol;
bool now_kiss(int nod)
{
if(used[nod])
return false;
used[nod] = true;
for(unsigned int i=0;i<v[nod].size();i++)
if(r[v[nod][i]] == 0 || now_kiss(v[nod][i]) )
{
r[v[nod][i]] = nod;
l[nod] = v[nod][i];
return true;
}
return false;
}
int main()
{
fin>>n>>m>>E;
for(int i=1;i<=E;i++)
{
fin>>x>>y;
v[x].push_back(y);
}
bool ch;
while(ch)
{
ch = false;
used.assign(n+1,0);
for(int i=1;i<=n;i++)
if(l[i] == 0)
if(now_kiss(i))
{
sol++;
ch = true;
}
}
fout<<sol<<'\n';
for(int i=1;i<=n;i++)
if(l[i])
fout<<i<<' '<<l[i]<<'\n';
fin.close();
fout.close();
return 0;
}