El algoritmo ACM es un problema muy difícil.
Una mejor descripción es, ingresar n, generar la enésima combinación (contando 0, 1, 2, 3, 4, 5 a partir de la combinación 0), en la cual 6 elementos van del 0 al 32, ordenados lexicográficamente.
Esta no es una pregunta difícil, sino una pregunta de nivel de entrada.
Dados los primeros k elementos (recuerde que k elementos son m), los * * * elementos restantes tienen C (32-m, 6-k) situaciones, entre las cuales C (x, Y ) representa la número de combinaciones de X e Y, que se pueden programar en consecuencia.
Déjame ponerte un ejemplo.
#¿Incluir? ltstdio.h gt
int? binom(int?n,?int?m)
{
int? I,? ¿do? =?1;
¿Si? (2*m?gt?n)
n? =?n-m;
¿Para qué? (I?=?1;?I?lt=?m;?i)
c? =?c *(n 1-I)/I;
¿Regresión? c;
}
int? principal()
{
int? I,? n;
int? ¿Respuesta [6]? =?{-1};
¿Cuándo? (scanf("d ", ampn)?!=?EOF)
{
n;
Si? (n?lt=?0?||?n?gt?benom(33,?6))
{
printf("¿No válido? entrada \ n ") ;
Continuar;
}
¿Para qué? (I?=?1;?I?lt=?5;?i)
{
¿Para qué? (A[i]?=?A[i-1]? ?1;?;?A[i])
int? t? =?Binom(32?-?A[I],?6?-?I);
Si? (n? gt?t)
n? -=?t;
Otro
Descanso;
}
printf("d ",a[I]);
}
printf("d\n ",A[i-1]? ?n);
}
¿Regresar? 0;
}