Pagini recente » Cod sursa (job #2840274) | Cod sursa (job #454686) | Cod sursa (job #2100577) | Cod sursa (job #1698491) | Cod sursa (job #2414496)
#include <bits/stdc++.h>
using namespace std;
ifstream f("cuplaj.in");
ofstream g("cuplaj.out");
int n,m,e,x,y,ans,S[10010],D[10010];
vector<int> a[10010],b[10010];
bitset<100010> viz;
bool ver(int poz){
if(viz[poz])return 0;
viz[poz]=1;
for(auto it:a[poz])
if(!D[it])
{
S[poz]=it;
D[it]=poz;
return 1;
}
for(auto it:a[poz])
if(ver(D[it]))
{
S[poz]=it;
D[it]=poz;
return 1;
}
return 0;
}
int main()
{
f>>n>>m>>e;
for(;e;e--){
f>>x>>y;
a[x].push_back(y);
b[y].push_back(x);
}
bool ok=1;
while(ok){
ok=0;viz.reset();
for(int i=1;i<=n;i++)
if(!S[i])
if(ver(i))
ok=1,ans++;
}
g<<ans<<'\n';
for(int i=1;i<=n;i++)
if(S[i])
g<<i<<' '<<S[i]<<'\n';
return 0;
}