#inlude
#inlude
#inlude
int graph[14][14] = {0};
int apaite[14][14] = {0};
int flot[14][14] = {0};
int visite[14];
int min(int a, int b)
{
if (a < b)
return a;
else
return b;
}
int dfs(int s, int t, int min_apaite)
{
visite = 1;
if (t == s)
return min_apaite;
for (int i = 0; i flot && !visite && graph)
{
int resultat = dfs(i, t, min(min_apaite, apaite - flot));
if (resultat != 0)
{
flot += resultat;
return resultat;
}
}
return 0;
}
void add_edge2(int i, int j, int )
{
apaite[j] = ;
graph[j] = 1;
}
void max_flot(int soure, int puit)
{
int max_flot = 0, min_apaite;
while (1)
{
for (int i = 0; i < 14; i++)
visite = 0;
if (!(min_apaite = dfs(soure, puit, INT_MAX)))
break;
max_flot += min_apaite;
}
printf("nLe flot maximum est de %dn", max_flot);
}
void mission3()
{
int soure = 0, puit = 13;
add_edge2(0, 1, 70);
add_edge2(0, 2, 30);
add_edge2(0, 3, 40);
add_edge2(0, 4, 55);
add_edge2(0, 5, 15);
add_edge2(1, 7, 30);
add_edge2(1, 10, 60);
add_edge2(2, 6, 15);
add_edge2(2, 9, 35);
add_edge2(2, 11, 5);
add_edge2(3, 10, 25);
add_edge2(3, 12, 50);
add_edge2(4, 7, 11);
add_edge2(4, 8, 12);
add_edge2(4, 9, 17);
add_edge2(4, 10, 10);
add_edge2(4, 11, 4);
add_edge2(5, 6, 5);
add_edge2(5, 7, 10);
add_edge2(5, 8, 2);
add_edge2(5, 10, 6);
add_edge2(5, 12, 7);
add_edge2(6, 13, 5);
add_edge2(7, 13, 21);
add_edge2(8, 13, 16);
add_edge2(9, 13, 45);
add_edge2(10, 13, 50);
add_edge2(11, 13, 20);
add_edge2(12, 13, 7);
max_flot(soure, puit);
}
——————–
M… – Envoyé depuis le Discord : Culte du code