{"categorie": "triviale", "id": "t01", "oracle": {"type": "regex", "valeur": "\\b391\\b"}, "prompt": "Combien font 17 × 23 ? Réponds en une phrase avec le nombre."}
{"categorie": "triviale", "id": "t02", "oracle": {"type": "regex", "valeur": "\\b6\\b"}, "prompt": "Quel est le reste de la division de 1000 par 7 ? Réponds en une phrase avec le nombre."}
{"categorie": "triviale", "id": "t03", "oracle": {"type": "contient", "valeur": "CHASER"}, "prompt": "Écris le mot 'chaser' en majuscules, dans une phrase."}
{"categorie": "triviale", "id": "t04", "oracle": {"type": "regex", "valeur": "\\b13\\b"}, "prompt": "Combien de lettres compte le mot 'orchestrateur' ? Réponds en une phrase avec le nombre."}
{"categorie": "triviale", "id": "t05", "oracle": {"type": "regex", "valeur": "\\b29\\b"}, "prompt": "Quel est le dixième nombre premier ? Réponds en une phrase avec le nombre."}
{"categorie": "triviale", "id": "t06", "oracle": {"type": "regex", "valeur": "\\b150\\b"}, "prompt": "Convertis 2 heures 30 minutes en minutes. Réponds en une phrase avec le nombre."}
{"categorie": "triviale", "id": "t07", "oracle": {"type": "regex", "valeur": "\\b5050\\b"}, "prompt": "Quelle est la somme des entiers de 1 à 100 ? Réponds en une phrase avec le nombre."}
{"categorie": "triviale", "id": "t08", "oracle": {"type": "contient", "valeur": "edcba"}, "prompt": "Écris la chaîne 'abcde' à l'envers, dans une phrase."}
{"categorie": "triviale", "id": "t09", "oracle": {"type": "regex", "valeur": "\\b1024\\b"}, "prompt": "Combien vaut 2 puissance 10 ? Réponds en une phrase avec le nombre."}
{"categorie": "triviale", "id": "t10", "oracle": {"type": "regex", "valeur": "\\b2\\b"}, "prompt": "Combien de voyelles compte le mot 'benchmark' ? Réponds en une phrase avec le nombre."}
{"categorie": "moyenne", "id": "m01", "oracle": {"type": "exec_tests", "valeur": ["assert pgcd(48, 18) == 6", "assert pgcd(100, 75) == 25", "assert pgcd(17, 5) == 1"]}, "prompt": "Écris une fonction Python pgcd(a, b) itérative (algorithme d'Euclide)."}
{"categorie": "moyenne", "id": "m02", "oracle": {"type": "exec_tests", "valeur": ["assert est_palindrome('Radar') is True", "assert est_palindrome('chaser') is False"]}, "prompt": "Écris une fonction Python est_palindrome(s) qui ignore la casse."}
{"categorie": "moyenne", "id": "m03", "oracle": {"type": "exec_tests", "valeur": ["assert fibonacci(10) == 55", "assert fibonacci(1) == 1", "assert fibonacci(0) == 0"]}, "prompt": "Écris une fonction Python fibonacci(n) itérative (pas récursive)."}
{"categorie": "moyenne", "id": "m04", "oracle": {"type": "exec_tests", "valeur": ["assert tri_insertion([3, 1, 2]) == [1, 2, 3]", "assert tri_insertion([5, -1, 4, 0]) == [-1, 0, 4, 5]", "assert tri_insertion([]) == []"]}, "prompt": "Écris une fonction Python tri_insertion(lst) qui trie une liste par insertion."}
{"categorie": "moyenne", "id": "m05", "oracle": {"type": "regex", "valeur": "\\b5\\b"}, "prompt": "Que renvoie l'expression Python len(set('abracadabra')) ? Réponds en une phrase avec le nombre."}
{"categorie": "moyenne", "id": "m06", "oracle": {"type": "regex", "valeur": "(?i)group\\s+by"}, "prompt": "En SQL, écris la requête qui compte les lignes de la table clients par pays (colonne pays)."}
{"categorie": "moyenne", "id": "m07", "oracle": {"type": "exec_tests", "valeur": ["assert aplatir([[1, 2], [3]]) == [1, 2, 3]", "assert aplatir([[], [4]]) == [4]"]}, "prompt": "Écris une fonction Python aplatir(lst) qui aplatit une liste de listes (un niveau)."}
{"categorie": "moyenne", "id": "m08", "oracle": {"type": "regex", "valeur": "(?i)O\\(\\s*log"}, "prompt": "Quelle est la complexité temporelle de la recherche dichotomique ? Réponds avec la notation O."}
{"categorie": "moyenne", "id": "m09", "oracle": {"type": "regex", "valeur": "\\b385\\b"}, "prompt": "Combien vaut la somme des carrés des entiers de 1 à 10 ? Réponds en une phrase avec le nombre."}
{"categorie": "moyenne", "id": "m10", "oracle": {"type": "exec_tests", "valeur": ["assert compte_mots('a b a') == {'a': 2, 'b': 1}", "assert compte_mots('') == {}"]}, "prompt": "Écris une fonction Python compte_mots(texte) qui renvoie un dictionnaire mot vers occurrences."}
{"categorie": "complexe", "id": "c01", "oracle": {"type": "regex", "valeur": "17[h:]55"}, "prompt": "Un train part à 14h07 et roule pendant 3 heures 48 minutes. À quelle heure arrive-t-il (format HH:MM) ?"}
{"categorie": "complexe", "id": "c02", "oracle": {"type": "regex_tous", "valeur": ["\\b2\\b", "\\b3\\b"]}, "prompt": "Résous l'équation x² − 5x + 6 = 0 et donne les deux racines."}
{"categorie": "complexe", "id": "c03", "oracle": {"type": "exec_tests", "valeur": ["d = dijkstra({'A': {'B': 1, 'C': 4}, 'B': {'C': 2}, 'C': {}}, 'A')", "assert d['B'] == 1 and d['C'] == 3"]}, "prompt": "Écris une fonction Python dijkstra(graphe, depart) — graphe : dict sommet vers dict voisin/poids — renvoyant les distances minimales."}
{"categorie": "complexe", "id": "c04", "oracle": {"type": "regex", "valeur": "\\b56\\b"}, "prompt": "De combien de façons peut-on choisir 3 éléments parmi 8, sans ordre ? Réponds en une phrase avec le nombre."}
{"categorie": "complexe", "id": "c05", "oracle": {"type": "exec_tests", "valeur": ["p = Pile()", "p.push(1)", "p.push(2)", "assert p.taille() == 2", "assert p.pop() == 2", "assert p.taille() == 1"]}, "prompt": "Écris une classe Python Pile avec les méthodes push, pop et taille."}
{"categorie": "complexe", "id": "c06", "oracle": {"type": "regex_tous", "valeur": ["11111111", "(?i)\\bff\\b|0xff"]}, "prompt": "Convertis 255 en binaire puis en hexadécimal."}
{"categorie": "complexe", "id": "c07", "oracle": {"type": "exec_tests", "valeur": ["r = fusionner_intervalles([(1, 3), (2, 6), (8, 10)])", "assert [tuple(x) for x in r] == [(1, 6), (8, 10)]"]}, "prompt": "Écris une fonction Python fusionner_intervalles(intervalles) qui fusionne les intervalles chevauchants d'une liste de paires."}
{"categorie": "complexe", "id": "c08", "oracle": {"type": "regex", "valeur": "\\b3\\b"}, "prompt": "Si 3 machines produisent 3 pièces en 3 minutes, combien de minutes faut-il à 100 machines pour produire 100 pièces ? Réponds en une phrase avec le nombre."}
{"categorie": "complexe", "id": "c09", "oracle": {"type": "exec_tests", "valeur": ["assert sorted(deux_sommes([2, 7, 11, 15], 9)) == [0, 1]", "assert sorted(deux_sommes([3, 2, 4], 6)) == [1, 2]"]}, "prompt": "Écris une fonction Python deux_sommes(nums, cible) renvoyant les indices de deux nombres dont la somme vaut cible."}
{"categorie": "complexe", "id": "c10", "oracle": {"type": "contient", "valeur": "jean"}, "prompt": "Le père de Jean a trois fils : Riri, Fifi et qui d'autre ?"}
