Pagini recente » Cod sursa (job #2461193) | Cod sursa (job #2932397) | Cod sursa (job #817220) | Cod sursa (job #742710) | Cod sursa (job #421945)
Cod sursa(job #421945)
#include<stdio.h>
FILE *f,*g;
int contor=0,n,m,t[8200];
char a[8200][8200];
int bf()
{
int j,p,i,u=1,coada[8200],sel[8200];
for(j=1;j<=n+2;j++)
sel[j]=0;
coada[1]=n+1;
for(j=1;j<=n;j++)
if(a[n+1][j]=='1')
{
u++;
coada[u]=j;
}
p=u;
for(j=2;j<=p;j++)
for(i=1;i<=n;i++)
if((sel[i]==0)&&(a[coada[j]][i]=='1'))
{
u++;
coada[u]=i;
sel[i]=1;
t[i]=coada[j];
}
for(j=p+1;j<=u;j++)
if(a[coada[j]][n+2]=='1')
{
contor++;
a[coada[j]][n+2]='0';
a[t[coada[j]]][coada[j]]='0';
a[n+1][t[coada[j]]]='0';
return 1;
}
return 0;
}
int main() {
int i,x,y;
f=fopen("felinare.in","r");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d%d",&x,&y);
a[x][y]='1';
}
fclose(f);
for(i=1;i<=n;i++)
{
a[n+1][i]='1';
a[i][n+2]='1';
}
x=1;
while(x)
x=bf();
g=fopen("felinare.out","w");
fprintf(g,"%d\n",2*n-contor);
fclose(g);
return 0;}