¡Urgente! Implementar un pequeño programa en lenguaje C.
#include
#define N 10 //Diez datos
#define M 5 //Cinco grupos
int límite[N][N]=
{
{1,N}, //0 límite 1;
{3,5,6 ,N}, //1 límite 3, 5, 6;
{0,1,6,7,N},//2 límite 0, 1, 6, 7; p>{1,2,N}, //3 límite 1, 2;
{N}, //
{1,2,N}, // 5 límite 1, 2;
{2,N}, //6 límite 2;
{8,9,N}, //7 límite 8, 9;
p>
{5,6,7,N}, //8 límites 5, 6, 7
{2,8,N} //9 límites 2, 8.
};
//Determinar si m limita n
bool m_limit_n(int m, int n)
{
int i;
if(m>=N || n>=N)
{
devuelve falso;
}
for(i=0;i { if(límite [m][i]==n) { devuelve verdadero; } } devolver falso; } bool valid(int *arr) { int i,j; para (i = 0; i < N; i=i+2) { if(arr[i]>arr[i+1]) p> { devuelve falso; } if(m_limit_n(arr[i],arr[(i+2)%N] ) ||m_limit_n(arr[i],arr[(i+3)%N]) ||m_limit_n(arr[i+1],arr[(i +2)%N]) ||m_limit_n(arr[i+1],arr[(i+3)%N])) { devuelve falso; } } devuelve verdadero; } intercambio nulo (int *arr, int n, int m) { int temp; temp=arr[n]; arr[ n]=arr[m]; arr[m]=temp; } int a[]={0,1,2,3 ,4,5,6,7,8,9}; void perm(int* arr, int n, int curr) { int i; if (curr>=n-1) { if(valid(arr)) { p> p> for (i = 0; i < N; i=i+2) { printf("%d,%d " , arr[i] ,arr[i+1]); } printf("\b\n"); } } else { para (i = curr; i < n; i=i+1) { if(i==curr) { permanente(arr, n, curr+1); } else { exchange(arr,i,curr); perm(arr, n, curr+1); intercambio ge(arr,i,curr); } } } } int principal () { permanente(a, tamaño de(a)/tamaño de(a[0]), 0 devuelve 0; } "Las restricciones se determinan en función de la situación real, por lo que se requiere que el programa le indique al usuario que ingrese las restricciones" es fácil, simplemente descúbralo usted mismo.