Pagini recente » Cod sursa (job #1705729) | Cod sursa (job #1442951) | Cod sursa (job #2088354) | Cod sursa (job #3170908) | Cod sursa (job #127104)
Cod sursa(job #127104)
#include<stdio.h>
#include<string.h>
#define N 8200
int n,m,*a[N],st[N],dr[N],viz[N],nr,i,x,y;
int cupleaza(int nod)
{int i;
if(viz[nod]) return 0;
viz[nod]=1;
for(i=1;i<=a[nod][0];i++)
if(!dr[a[nod][i]] || cupleaza(dr[a[nod][i]]))
{st[nod]=a[nod][i];
dr[a[nod][i]]=nod;
return 1;}
return 0;}
void cuplaj()
{for(i=1;i<=n;i++)
if(!st[i])
if(cupleaza(i)) nr++;
else{
memset(viz,0,sizeof(viz));
if(cupleaza(i)) nr++;}
}
void citire()
{freopen("felinare.in","r",stdin);
scanf("%d %d",&n,&m);
for(i=1;i<=m;i++) {scanf("%d %d",&x,&y);viz[x]++;}
fclose(stdin);
for(i=1;i<=n;i++)
{a[i]=new int[viz[i]+2];
a[i][0]=0;}
freopen("felinare.in","r",stdin);
scanf("%d %d",&n,&m);
for(i=1;i<=m;i++) {scanf("%d %d",&x,&y);a[x][++a[x][0]]=y;}
memset(viz,0,sizeof(viz));}
int main()
{freopen("felinare.out","w",stdout);
citire();
cuplaj();
printf("%d",2*n-nr);
fclose(stdout);
return 0;}