Red de conocimiento informático - Computadora portátil - Un problema por el cual C deja de funcionar después de ejecutarlo.

¿Por qué?

Un problema por el cual C deja de funcionar después de ejecutarlo.

¿Por qué?

No entiendo muy bien lo que quieres decir, aquí está el programa de referencia;

# include ltcstdio gt

# include ltcstring gt

int first[201] , a[ 201], f[201];

int endl[200001], next[200001];

int tot, ans

void add_edge( int a, int b)

{

siguiente[ tot]= primero[a];

primero[a]= tot;

endl [tot]= b;

}

int max(int ​​​​a, int b)

{

devolver un gtb? A: B;

}

int dfs(int x)

{

if(f[x] gt;=0 ) devuelve f[x];

int I = primero[x];

f[x]= 0;

Cuando (I)

{

int es = endl[I];

f[x]=max(f[x],DFS(es));

I = siguiente[I];

}

f[x] = a[x];

return f[x];

}

Impresión no válida (entero x)

{

if (f[x]==a[x])

{

printf("d\n ",x);

Retorno;

}

printf("d -", x);

f[x]-= a[x];

int I = primero[x];

Cuando (i)

{

int en = endl[I];

if (f[en]==f[x])

{

Imprimir(es);

Regresar;

}

I = siguiente[I];

}

}

int main(void)

{

int n;

scanf(" d ", ampn);

for(int I = 1; i lt= n; i)

scanf("d ", ampa[I]);

for(;;)

{

int a, b;

scanf("dd ", amp one, ampb

if(a = = 0 amp; ampb = = 0)break;

add_edge(a, b);

}

memset( f, 255, tamaño de(f));

for(int I = 1; i lt= n; i)

{

ans=max( ans, DFS(I));

}

for(int I = 1; i lt= n; i)

if (f[i] ==ans)

{

Imprimir(1);

Romper;

}

printf( "d\n ",ans);

Devuelve 0;

}