Pagini recente » Cod sursa (job #436590) | Cod sursa (job #549085) | Cod sursa (job #2097082) | Cod sursa (job #3174774) | Cod sursa (job #2328196)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("cuplaj.in");
ofstream g ("cuplaj.out");
const int nmax=1e4+3;
vector <int> v[nmax];
int dr[nmax],st[nmax],t,n,m,e,sol,a,b,ok;
bool viz[nmax];
inline bool cuplaj(int nod)
{
if(viz[nod]) return 0;
viz[nod]=1;
for(int i=0;i<v[nod].size();++i)
{
if(!dr[v[nod][i]]||cuplaj(dr[v[nod][i]]))
{
dr[v[nod][i]]=nod;
st[nod]=v[nod][i];
return 1;
}
}
return 0;
}
int main()
{
ios::sync_with_stdio(false);
//f>>t;
t=1;
while(t--)
{
f>>n>>m>>e;
memset(st,0,sizeof(st));
memset(dr,0,sizeof(dr));
for(int i=1;i<=n;++i) v[i].clear();
sol=0;
while(e--)
{
f>>a>>b;
v[a].push_back(b);
}
ok=1;
while(ok)
{
memset(viz,0,sizeof(viz));
ok=0;
for(int i=1;i<=n;++i) if(cuplaj(i)) ok=1;
}
for(int i=1;i<=n;++i) if(st[i]) ++sol;
g<<sol<<'\n';
}
return 0;
}