Pagini recente » Cod sursa (job #2833340) | Monitorul de evaluare | Cod sursa (job #140939) | Rating Iulia Dumitru (iuliadmtru) | Cod sursa (job #1404554)
#include <bits/stdc++.h>
#define pb push_back
#define N 8195
using namespace std;
vector<int>v[N];
int l[N], r[N], n, m, sol, x, y, ok, i;
bitset<N>viz;
bool pairup(int nod)
{
if(viz[nod])
return 0;
viz[nod] = 1;
for(auto it : v[nod])
if(!r[it] || pairup(r[it]))
{
l[nod] = it;
r[it] = nod;
return 1;
}
return 0;
}
int main()
{
freopen("felinare.in", "r", stdin);
freopen("felinare.out", "w", stdout);
scanf("%d%d", &n, &m);
for(; m; m--)
{
scanf("%d%d", &x, &y);
v[x].pb(y);
}
for(ok = 1; ok;)
{
ok = 0;
viz = 0;
for(i = 1; i <= n; i++)
if(!l[i] && pairup(i))
{
sol++;
ok = 1;
}
}
printf("%d\n", 2 * n - sol);
return 0;
}