Contexte
Une séquence d'ensemble ex-croissante d'ordre est définie comme une séquence d'ensembles entiers qui satisfait les conditions suivantes:S 1 , S 2 , ⋯ , S n
- Chaque est un sous-ensemble non vide de . { 1 , 2 , ⋯ , N }
- Pour , , c'est-à-dire que deux ensembles consécutifs quelconques n'ont aucun élément en commun.S i ∩ S i + 1 = ∅
- Pour , la moyenne (valeur moyenne) de est strictement inférieure à celle de .S i S i + 1
Défi
Étant donné un nombre entier positif N
, affichez la longueur de la plus longue séquence d'ensemble d'ex-ordre croissant N
.
Cas de test
Ceux-ci sont basés sur les résultats de l'utilisateur de Project Euler thundre .
1 => 1 // {1}
2 => 2 // {1} {2}
3 => 3 // {1} {2} {3}
4 => 5 // {1} {2} {1,4} {3} {4}
5 => 7 // {1} {2} {1,4} {3} {2,5} {4} {5}
6 => 10 // {1} {2} {1,4} {3} {1,4,5} {2,3,6} {4} {3,6} {5} {6}
7 => 15 // {1} {2} {1,4} {3} {1,2,7} {3,4} {1,2,5,7} {4} {1,3,6,7} {4,5} {1,6,7} {5} {4,7} {6} {7}
8 => 21
9 => 29
10 => 39
11 => 49
12 => 63
13 => 79
14 => 99
15 => 121
16 => 145
17 => 171
18 => 203
19 => 237
20 => 277
21 => 321
22 => 369
23 => 419
24 => 477
25 => 537
Règles
Les règles de code-golf standard s'appliquent. La soumission valide la plus courte en octets l'emporte.
Prime
Ce problème a été discuté ici sur le forum Project Euler il y a environ 4 ans, mais nous n'avons pas réussi à trouver un algorithme à temps polynomial prouvable (en termes de N
). Par conséquent, j'accorderai +200 primes à la première soumission qui y parviendra ou prouverai son impossibilité.