Pagini recente » Cod sursa (job #1071696) | Cod sursa (job #2521667) | Cod sursa (job #497808) | Cod sursa (job #956535) | Cod sursa (job #2396624)
#include<bits/stdc++.h>
#define N 10030
using namespace std;
int n,m,e,rs,l[N],r[N],viz[N];
vector<int>V[N];
bool DFS(int x) {
viz[x]=1;
for (auto it:V[x]) {
if (!r[it] || !viz[r[it]] && DFS(r[it])) {
r[it]=x;
l[x]=it;
return 1;
}
}
return 0;
}
int main() {
ifstream cin("cuplaj.in");
ofstream cout("cuplaj.out");
cin>>n>>m>>e;
for (int i=1; i<=e; ++i) {
int x,y; cin>>x>>y;
V[x].push_back(y);
}
bool u=1;
while (u) {
u=0;
for (int i=1; i<=n; ++i) viz[i]=0;
for (int i=1; i<=n; ++i) {
if (!l[i] && !viz[i] && DFS(i)) {
u=1; rs++;
}
}
}
cout<<rs<<'\n';
for (int i=1; i<=n; ++i) {
if (l[i]) cout<<i<<" "<<l[i]<<'\n';
}
return 0;
}