Pagini recente » Cod sursa (job #3262888) | Cod sursa (job #3031411) | Cod sursa (job #2943016) | Cod sursa (job #2768722) | Cod sursa (job #2871989)
#include <fstream>
#include <vector>
#include <cstring>
using namespace std;
ifstream f("felinare.in");
ofstream g("felinare.out");
bool fost[20011];
int coup[20011];
vector <int> v[10011];
bool cuplaj(int k)
{
if(fost[k]==1)
return 0;
fost[k]=1;
for(auto it=v[k].begin();it!=v[k].end();it++)
if(coup[*it]==0)
{
coup[*it]=k;
coup[k]=*it;
return 1;
}
for(auto it=v[k].begin();it!=v[k].end();it++)
if(cuplaj(coup[*it])==1)
{
coup[k]=*it;
coup[*it]=k;
return 1;
}
}
int n,m,i,x,y,schimb,nr;
int main()
{
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
v[x].push_back(y+n);
}
//x+n->out
//x->in
schimb=1;
for(i=1;i<=n;i++)
if(coup[i]>0)
nr++;
g<<n*2-nr;
return 0;
}