Pagini recente » Cod sursa (job #1575540) | Cod sursa (job #2591817) | Cod sursa (job #2483634) | Cod sursa (job #740097) | Cod sursa (job #1494493)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("strazi.in");
ofstream fout("strazi.out");
int
int cuplaj(int nod)
{
v[nod] = 1;
for(int i = 0; i < L[nod].size(); i ++)
{
int a = L[nod][i];
if(stanga[a] == 0)
{
stanga[a] = nod;
dreapta[nod] = a;
return 1;
}
}
for(int i = 0; i < L[nod].size(); i ++)
{
int a = L[nod][i];
if(cuplaj(dreapt[a]) && v[a] == 0 )
{
dreapta[a] = nod;
stanga[nod] = a;
return 1;
}
}
return 0;
}
int main()
{
fin >> n >> m;
for(int i = 1; i <= m; i ++)
{
fin >> a >> b;
L[a].push_back(b);
X[a][b] = 1;
}
while(1)
{
ok = 0;
for(int i = 1; i <= n; i ++)
{
v[i] = 0;
}
for(int i = 1; i <= n; i ++)
{
if( cuplaj(i) == 1 && stanga[i] == 0 )
{
nr ++;
ok = 1;
}
}
if(ok == 0)
break;
}
return 0;
}