O(crêpe) – Épreuve régionale 2018

Niveau 4

Énoncé

Joseph Marchand aime bien diversifier ses recettes de crêpes, en utilisant des ingrédients plus ou moins élaborés. Cependant, une crêpe contenant des ingrédients trop originaux ne va pas nécessairement plaire aux clients, de même pour une crêpe trop basique. On définit la complexité d'une crêpe comme étant la somme de la complexité de chacun de ses ingrédients.

Après plusieurs retours, Joseph a réussi à déterminer un seuil maximal $K$ de complexité. Plus l'indice de complexité d'une crêpe est proche de ce seuil plus le client sera satisfait, mais Joseph doit être prudent de ne l'atteindre, ou pire encore de le dépasser, auquel cas le client ne sera pas convaincu face à la complexité de la crêpe.

Pour chaque étape d'une recette, Joseph possède à sa disposition différents ingrédients et doit en choisir un seul par étape. Joseph aimerait donc choisir les ingrédients d'une crêpe, de façon à maximiser l'indice de complexité tel qu'il soit strictement inférieur à $K$. En tant que nouvel employé de la crêperie, vous êtes chargé d'aider Joseph Marchand dans sa démarche.

Entrée

La première ligne contient deux entiers $N$ et $K$, où $N$ est le nombre d'étapes de la recette que prépare Joseph et $K$ le seuil maximal de complexité.

Les $N$ * 2 prochaines lignes correspondent chacune à une étape de la recette et sont organisées de la manière suivante : la première ligne contient un entier $M$ correspondant au nombre d'ingrédients disponibles pour cette étape. La seconde contient $M$ entiers indiquant pour chaque ingrédient son degré de complexité $K_i$ ($0 \lt K_i \le K$).

Sortie

Un unique entier représentant la complexité maximale que Joseph peut atteindre pour cette crêpe, ou -1 s'il est impossible de ne pas atteindre ou dépasser $K$.

Contraintes

  • $1 \le N \le 5$
  • $1 \le K \le 50$
  • $1 \le M \le 5$

Contraintes de performance

  • $1 \le N \le 20$
  • $1 \le K \le 200$
  • $1 \le M \le 20$

Contraintes d'exécution

Utilisation mémoire maximum
10000 kilo-octets
Temps d'exécution maximum
2500 millisecondes

Exemples d'entrée/sortie

Exemple d'entrée
3 10
3
2 4 1
2
1 6
4
2 5 4 7
Exemple de sortie
9
Commentaire

Pour l'étape 1, il y a 3 ingrédients disponibles de complexité respectives 2, 4 et 1. Pour l'étape 2, les 2 seuls ingrédients ont pour complexité 1 et 6. Enfin, pour l'étape 3, il y a 4 choix d'ingrédients de complexité 2, 5, 4 et 7.

En utilisant les ingrédients de complexité 1, 1, et 7 on obtient une complexité totale de 9, qui est optimale dans ce cas. Notez que l'on peut aussi atteindre un tel résultat en utilisant les ingrédients de complexité 4, 1, 4 ou encore 1, 6, 2.

Exemple d'entrée
4 7
2
3 2
1
3
4
1 6 2 5
1
1
Exemple de sortie
-1
Commentaire

Même en choisissant pour chaque étape l'ingrédient de complexité la plus faible, il est impossible de trouver une complexité totale strictement inférieure à 7. Le résultat est donc -1.