Pagini recente » Cod sursa (job #634607) | Cod sursa (job #907728) | Cod sursa (job #2186897) | Cod sursa (job #1387001) | Cod sursa (job #1644332)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("cuplaj.in");
ofstream g1("cuplaj.out");
int g[10001][10001],st[10001],dr[10001],nr,n1,n2,x,y,m;
char u[10001];
int cupleaza(int nod)
{ int i;
if(u[nod]) return 0;
u[nod]=1;
for(int i=1;i<=n2;i++)
{ if(!g[nod][i]) continue;
if(!dr[i]||cupleaza(dr[i]))
{ st[nod]=i;
dr[i]=nod;
return 1;
}
}
return 0;
}
void cuplaj()
{int i;
for(i=1;i<=n1;i++)
{ if(st[i]) continue;
if(cupleaza(i)) nr++;
else
{memset(u,0,sizeof(u));
if(cupleaza(i)) nr++;
}
}
}
void citire ()
{ f>>n1>>n2>>m;
for(int i=1;i<=m;i++)
{ f>>x>>y;
g[x][y]=1;
}
}
int main()
{ citire();
cuplaj();
g1<<nr;
return 0;
}