Necesito un poco de ayuda con este algoritmo de C ++

Estoy tratando de resolver un problema de algoritmo pero no puedo encontrar la solución ...

La tarea es generar el menor número de pasos necesarios para alcanzar una determinada configuración de lámparas.

Hay dos filas de lámparas y N <10000 columnas, así:

11011
11011

o

11101101111000101010
01111101100000010100

Estas lámparas pueden estar "encendidas" (1) o "apagadas" (0).

A partir de todo apagado (0), el programa debe dar salida a la cantidad de pasos necesarios para alcanzar la configuración deseada.

Un paso puede ser:

encender una lámparaalternar dos lámparas, una encima de la otra (en la misma columna)alternar n lámparas consecutivas en la misma fila, puede ser toda la fila, puede ser solo dos (o una como se explicó anteriormente)

Pensé que el algoritmo debería simplemente contar la cantidad de pasos necesarios para apagar las luces completamente, y eso sería lo mismo que en el orden "correcto". También mi suposición fue tratar de encontrar "agujeros", es decir, secuencias de más de una lámpara con el mismo estado, y luego cambiarlas. Pero se complica ya que hay dos filas ...

Sin embargo, estaba completamente perdido después de ese punto y necesito ayuda ...

Respuestas a la pregunta(4)

Su respuesta a la pregunta