Pues parece un problema más complicado de lo que pueda parecer a primera vista. Se trata de una optimización, ya que tienes que encontrar la mejor solución o solución óptima (se supone que será aquella para la que se obtienen los cortes usando el menor número de barras posible), pero además te piden todas las posibles combinaciones de corte, lo cual obliga a generar todas las posibles combinaciones aunque se sepa que no van a ser óptimas.
Lo primero que habría que aclarar es el enunciado del problema: cuando se dice "s" cantidad de barras de "x" longitud podríamos pensar que s es un número variable y x un número fijo. Por ejemplo podríamos pensar que fueran 5 barras de 2 metros de longitud.
O podríamos pensar que s es un número variable y x un número variable también, por ejemplo 5 barras con longitudes 3, 2, 4, 3, y 1 metro.
Con los cortes sucede lo mismo: podríamos pensar que todos los cortes son iguales. Por ejemplo 3 cortes de 1 metro, o bien que cada corte tiene su propia longitud.
Lo que veo es que has supuesto que las barras son de longitud variable y los cortes son de longitud variable.
Supongamos que tenemos 2 barras una de 3 metros y otra de 4 metros y que hay que generar 2 cortes uno de 1 metro y otro de 2 metros. Tendríamos que generar un árbol de soluciones donde una primera ramificación es el número de barras que intervienen en la solución. Para cada una de estas ramificaciones tendríamos que buscar las diferentes asignaciones de corte a cada barra posibles y calcular su puntuación.
Por ejemplo teniendo dos barras tendríamos dos ramificaciones: hacia un lado, una solución donde solo interviene una barra, y hacia otro lado una solución donde intervienen dos barras.
En la solución donde solo interviene una barra tendríamos tantas ramificaciones como barras, en nuestro caso 2, lo que nos llevaría a asignar todos los cortes a la primera barra y esto nos da la SOLUCIÓN 1: barra 1 con 2 cortes, residuo 0; Por otro lado si asignamos todos los cortes a la segunda barra tenemos la SOLUCIÓN 2: barra 2 con 2 cortes, residuo 1.
En la solución donde intervienen dos barras tendríamos tantas ramificaciones como posibles combinaciones de barras dos a dos. Si tuviéramos 4 barras las ramificaciones serían 1-2, 1-3, 1-4, 2-3, 2-4, 3-4. Seguidamente tendríamos tantas ramificaciones como posibles combinaciones de asignaciones de cortes a las barras.
En el ejemplo anterior sólo tenemos dos barras por lo que la única ramificación sería 1-2, y las posibles combinaciones serían:
a) Asignar el primer corte a la primera barra (residuo: 2) y el segundo a la segunda barra (residuo: 2) con residuo total 4, SOLUCIÓN 3
b) Asignar el primer corte a la segunda barra (residuo: 3) y el segundo a la primera barra (residuo: 1) con residuo total 4, SOLUCIÓN 4
En nuestro caso no tenemos más combinaciones posibles, la calificación de las combinaciones la haríamos en base al residuo que dejan, con lo cual la calificación sería:
SOLUCIÓN 1: 0
SOLUCIÓN 2: 1
SOLUCIÓN 3: 4
SOLUCIÓN 4: 4
Y la solución óptima sería la solución 1 porque es la que genera el menor residuo.
En algunos casos no habría una sola solución óptima, sino varias soluciones óptimas (que empatarían con la mejor puntuación). Al aumentar el número de barras y de cortes la cantidad de combinaciones crecería desmesuradamente.
Quizás haya una solución más sencilla, pero a simple vista parece un problema de algoritmia avanzada a resolver con la técnica de "Backtracking" y el primer paso a dar sería generar todas las posibles combinaciones (todas las posibles cantidades de barras, y todas las posibles combinaciones de cortes para cada cantidad). Esto se suele hacer mediante algoritmos recursivos, pero no sé si has trabajado con algoritmia recursiva. Esta es bastante complicada de entender y plantear si no se ha trabajado con ella.
En resumen, lo veo complejo si el enunciado es tal como se ha supuesto. Normalmente en los enunciados se introducen simplificaciones que facilitan la resolución del problema, pero habría que ver si el enunciado es simplificable respecto a lo supuesto. También es posible que haya una forma más sencilla de resolverlo, pero a mí no se me ocurre. Saludos.