Pagini recente » Cod sursa (job #289206) | Cod sursa (job #2293625) | Cod sursa (job #3238736) | Cod sursa (job #157681) | Cod sursa (job #2379155)
#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
#define nmx 8200
using namespace std;
ifstream fin("felinare.in");
ofstream fout("felinare.out");
int n,m,i,j,k,nr;
int l[nmx],r[nmx],u[nmx];
vector<int> ad[nmx];
int augment(int n)
{
if(u[n]) return 0;
u[n]=1;
for(int i:ad[n])
if(!r[i])
{
l[n]=i;
r[i]=n;
return 1;
}
for(int i:ad[n])
if(augment(r[i]))
{
l[n]=i;
r[i]=n;
return 1;
}
return 0;
}
int main() {
fin>>n>>m;
for(i=1;i<=m;i++)
{
fin>>j>>k;
ad[j].push_back(k);
}
for(int ok=1; ok;)
{
ok=0;
memset(u, 0, sizeof(u));
for(i=1;i<=n;i++)
if(!l[i])
ok|=augment(i);
}
for(i=1;i<=n;i++)
if(l[i]!=0) nr++;
fout<<2*n-nr<<"\n";
}