English:
I need an algorithm that solves the problem, the idea is that it is a dynamic programming algorithm that selects me which is the best range where more packages pass without having to evaluate all the options without using the exhaustive method.
The problem basically deals with the following:
Before it is necessary to understand the following, the same letters make up 1 packet, but there is also a restriction variable where only M packets can be passed, for this case M is worth 2 M = 2, that is, only packets can pass where the letter is not repeat more than 2 times
1. I have an arrangement C C D F B B B A C A E A
2. I need to know which is the best range where more packages pass
3. For this case the best range is: 1 - 10 {C D F B B B A C A E}
Explanation of why is the best range, remember that the same letter makes a package
C = 2
D = 1
F = 1
B = 3 Does not comply with the restriction of M = 2 this means that it is not counted as a package should be omitted
A = 2
E = 1
For a total of 5 packages.
You can not use an exhaustive method that is to say that evaluates all the options if not some method that dynamic or voracious or any other way that is faster
You should print the packages that passed and the range with the best option.
It can be done in desktop c # or java
Urgent need
Español:
necesito un algoritmo que resuelva el problema planteado, la idea es que sea un algoritmo de programacion dinamica que me seleccione cual es el mejor rango donde pasan mas paquetes sin tener que evaluar todas las opciones sin usar el metodo exhaustivo.
El problema basicamente trata de los siguiente:
Antes es necesario entender lo siguiente, las mismas letras conforman 1 paquete, pero tambien existe una variable de restrincion donde solo puede pasar M paquetes, para este caso M vale 2 M=2, es decir solo podran pasar los paquetes donde la letra no se repita mas de 2 veces
1. Tengo un arreglo C C D F B B B A C A E A
2. Necesito saber cual es el mejor rango donde pasan mas paquetes
3. Para este caso el mejor rango es: 1 - 10 {C D F B B B A C A E }
Explicacion de por que es el mejor rango, recordemos que la misma letra hace un paquete
C=2
D=1
F=1
B=3 No cumple con la restrinccion de M=2 esto quiere decir que no se cuenta como paquete se debe omitir
A=2
E=1
Para un total de 5 paquetes.
No se puede utilizar un metodo exhaustivo es decir que evalue todas las opcion si no algun metodo que dinamico o voraz o cualquiero otra forma que sea mas rapido
Se debe imprimir los paquetes que pasaron y el rango con la mejor opcion.
Puede ser hecho en c# o java de escritorio
Se necesita urgente