Pagini recente » Cod sursa (job #3152340) | Cod sursa (job #1709724) | Cod sursa (job #432600) | Cod sursa (job #291348) | Cod sursa (job #2541440)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cuplaj.in");
ofstream fout("cuplaj.out");
vector<int> G[20000];
int use[20000];
int R[20000];
int L[20000];
int n,m,e;
int pairup(int nod){
cout<<"S"<<use[nod]<<endl;
if(use[nod]){
return 0;
}
use[nod] = 1;
for(auto vecin: G[nod]){
if(R[vecin] == 0){
R[vecin] = nod;
L[nod] = vecin;
return 1;
}
}
for(auto vecin: G[nod]){
if(pairup(R[vecin])){
R[vecin] = nod;
L[nod] = vecin;
return 1;
}
}
return 0;
}
int main()
{
int i,a,b,S = 0;
fin>>n>>m>>e;
for(i = 1; i <= e; i++){
fin>>a>>b;
G[a].push_back(b);
}
for(i = 1; i <= n ; i++){
memset(use,0,sizeof(use));
S += pairup(i);
}
fout<<S<<endl;
for(i = 1; i <= n; i++){
if(L[i] != 0){
fout<<i<<" "<<L[i]<<'\n';
}
}
return 0;
}