La verdad es que si tuviéramos la respuesta a éste y todos los demás problemas de informática que pudiera plantear un programador avezado o incluso un principiante, estaríamos haciendo otras cosas en alguna otra parte, seguramente, o tal vez siguiéramos aquí, quién sabe... Lo bonito de un problema enrevesado es que nadie lo solucione y siga ahí desafiante para poder atacarlo sin descanso o las tardes de domingo aburridas ... y , tal vez, poder disfrutar por fin de ese segundo o minuto o día de gloria cuando lo resuelves... Una vez hice un examen, y al entregar la hoja, el profesor se me quedó mirando y me dijo ¿ cómo has resuelto este problema ?,( era una grúa volcando o cayendo y con todo el aparejo colgando ), ¿ con dos fórmulas en media línea ? Pues sí, contesté, aplicando la conservación de la cantidad de movimientos . Magnífico, me dijo... ( eso es un mili segundo de gloria ). Creo que el camino adecuado es plantear el problema adecuadamente según el método de resolución que intentes: si vas a cálculo puro y duro, no será igual que si vas a emplear computación o métodos de aproximación, o... y en este caso, creo que un buen y frondoso árbol de decisiones sería adecuado, o, tal vez, trabajar en línea , ordenados del 1 al 41 y, una vez liquidada la fase 1, reconvertir la línea en una nueva con menos componentes, y reanudar el proceso , reiterativo , hasta el final. Eso sí, que todo el mundo conserve su posición, que no se me mueva nadie. Suerte y, si la mereces y la encuentras, avísanos para celebrarlo.
Saludos