Distancia de Hamming

Time Limit:
4 Sec
Memory Limit:
128Mb
Enviados:
119
Resuelto:
56
Enviar IDE Estado

Descripción

La distancia de hamming se define entre dos cadenas S y T, Dh(S,T) del mismo tamaño como la cantidad de índices i tal que S[i] es diferente de T[i].
Dada una cadena S y un conjunto de cadenas C se desea encontrar una cadena T formada por la concatenación de algunas cadenas, repitiendo o no y en cualquier orden de C tal que Dh(S,T) sea de valor mínimo.

Si S=100111010110 y C={10111, 10011, 11, 1001, 110} podemos tomar las cadenas C[2],C[3] y C[1], concatenarlas y obtener T1=100111110111 siendo Dh(S,T1)=Dh(100111010110,100111110111)=2. Una mejor opción sería tomar C[4],C[5] y C[1] obteniendo T2=100111010111 para obtener  Dh(S,T2)=Dh(100111010110,100111010111)=1.

Entrada

La primera línea de entrada contiene la cadena S y un número natural 1<=N<=100. Las siguientes N líneas contienen las cadenas del conjunto C. Todas las cadenas son no vacías, de tamaño máximo 100 y compuestas por 0 o 1.

Salida

Imprimir la mínima distancia de Hamming entre S y alguna cadena T que se forma del conjunto C. Si no es posible crear ninguna cadena T que tenga el mismo tamaño que S imprimir -1, puesto que Dh(S,T) es indefinida si difieren en tamaño.

Ejemplo Entrada

Copy icon
1001001110 2
1110
100

Ejemplo Salida

Copy icon
0

Ayuda