Pagini recente » Cod sursa (job #1077475) | Cod sursa (job #834298) | Cod sursa (job #336408) | Cod sursa (job #1172934) | Cod sursa (job #1742323)
#include <bits/stdc++.h>
#define FOR for(vector <int> :: iterator it=V[nod].begin();it!=V[nod].end();++it)
using namespace std;
ifstream f("cuplaj.in");
ofstream g("cuplaj.out");
int i,n,m,e,sol,x,y,ok,st[5<<11],dr[5<<11];
bool viz[5<<11];
vector <int> V[5<<11];
inline bool cuplu(int nod)
{
if(viz[nod]) return 0;
viz[nod]=1;
FOR
if(!dr[*it])
{
dr[*it]=nod;
st[nod]=*it;
return 1;
}
FOR
if(cuplu(*it))
{
dr[*it]=nod;
st[nod]=*it;
return 1;
}
return 0;
}
int main()
{
f>>n>>m>>e;
while(e--)
{
f>>x>>y;
V[x].push_back(y);
}
while(!ok)
{
for(i=ok=1;i<=n;++i) viz[i]=0;
for(i=1;i<=n;++i)
if(!st[i]&&cuplu(i))
++sol,ok=0;
}
g<<sol<<'\n';
for(i=1;i<=n;++i)
if(st[i]) g<<i<<' '<<st[i]<<'\n';
return 0;
}