Pagini recente » Statistici MADALINA MARIA (Madalinuta2) | Cod sursa (job #2810981) | Cod sursa (job #1206052) | Cod sursa (job #1859637) | Cod sursa (job #750114)
Cod sursa(job #750114)
#include<fstream>
#include<vector>
#include<algorithm>
#include<string.h>
#define dim 8200
using namespace std;
ifstream f("felinare.in");
ofstream g("felinare.out");
int w[dim],n,m,i,nr,x,y,l[dim],r[dim],change;
vector<int>G[dim];
int pairup (int x) {
if(w[x])
return 0;
w[x]=1;
for(int i=0;i<G[x].size();++i){
if(!r[G[x][i]]){
r[G[x][i]]=x;
l[x]=G[x][i];
return 1;
}
}
for(int i=0;i<G[x].size();++i){
if(pairup(r[G[x][i]])){
r[G[x][i]]=x;
l[x]=G[x][i];
return 1;
}
}
return 0;
}
int main () {
f>>n>>m;
for(i=1;i<=m;i++){
f>>x>>y;
G[x].push_back(y);
}
change =1;
do{
change =0;
memset(w,0,sizeof(w));
for(i=1;i<=n;i++)
if(!l[i]){
change|=pairup(i);
}
}while(change);
for(i=1;i<=n;i++)
if(l[i])
nr++;
g<<2*n-nr<<"\n";
return 0;
}