Cod sursa(job #553039)

Utilizator cr1st18Cristi cr1st18 Data 13 martie 2011 14:36:10
Problema Felinare Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<iostream>
#include<fstream>

using namespace std;

int a[8200][8200],cuplaj[8200],viz[8200];
int i,j,n,m,card;

int cupleaza(int i)
{
	int j;
	if(viz[i] == 1)
		return 0;
	viz[i] = 1;
	
	for(j=1;j<=n;j++)
		if((a[i][j] == 1 && (cuplaj[j] !=i || cupleaza(cuplaj[j]) == 1)) )
		{
			cuplaj[j] = i;
			return 1;
		}
	return 0;
}


int main()
{
	
	ifstream fin("felinare.in");
	ofstream fout("felinare.out");
	
	fin>>n>>m;
	
	while(fin>>i>>j)
		a[i][j] = 1;
	

	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
			viz[j] = 0;
	card = card + cupleaza(i);
	}
	
	fout<<2*n - card<<"\n";
	
return 0;
}