00:01 <debnet> Oui ça va, j'ai toujours peur le weekend que ça soit trop consommateur en temps.
00:01 <debnet> Avec un enfant à la maison, j'ai très peu de temps de cerveau disponible.
07:18 <discord_afpy_> <lythari59> quel age ont vos enfants ?
08:32 <debnet> Le mien a deux ans.
08:56 <mdk> Booooom, part1 en 0,049s :))))
08:57 <entwanne> ma partie 1 est très inefficace, mais la partie 2 marche bien
09:38 <debnet> J'ai pas encore regardé.
09:43 <discord_afpy_> <lythari59> 2 ans ça demande pas mal d'attention c'est sûr.
09:45 <debnet> Tu m'étonnes. T'as des enfants toi ?
09:46 <discord_afpy_> <lythari59> 2, mais des grands, 10 et 12
09:47 <discord_afpy_> <lythari59> entwanne : ma partie 2 tourne en 2minutes mais a a marché, je suis en train de réécrire là.
09:50 <entwanne> Pour donner un ordre d'idée mon code P1 tourne en 30s sur ma machine alors que la P2 tourne en 1s. Mais je pourrais utiliser le format de stockage de la P2 pour la P1 et ça irait beaucoup mieux ^^
09:51 <entwanne> (format auquel j'avais initialement pensé en P1 parce que je croyais que les blocs n'étaient pas fractionnables)
10:02 <debnet> Ma P1 est inefficiente aussi.
10:02 <debnet> Environ 3 secondes sur ma machine.
10:03 <debnet> Utiliser un immense tableau n'est pas une bonne idée.
10:10 <discord_afpy_> <dancergraham> Ahh got it ! Day 04 pt 2 en 1.13ms, dont lecture de fichier, si on connait déja la largeur du grid
10:11 <discord_afpy_> <dancergraham> dans un interpreteur qui tourne deja..
10:20 <mdk> Damned la partie 2 me pose des soucis (j'y arrive avec l'exemple mais pas avec l'input complet)
10:20 <mdk> ?ACTION retourne lire l'énoncé?
10:23 <debnet> La P2 me donne envie de pleurer.
10:23 <mdk> oohhh j'ai trouvé mon bug je pense
10:23 <mdk> j'ai oublié de merger les gaps quand on bouge un fichier, damned
10:35 <entwanne> Ah tiens j'ai pas eu à faire ça, si ça se trouve mon programme ne tourne pas sur ton entrée
10:36 <mdk> Ohhhh non, 2s de CPU, hé, mon code :((((( #pasfier
10:37 <mdk> je met du temps a trouver le bon gap pour insérer le fichier
10:38 <debnet> 2 secondes c'est OK. ^^
10:40 <mdk> Moui, ma partie 1 tournant en 0.04s j'aurai aimé que ma partie 2 fasse moins que 2s 😀
10:43 <mdk> youhou, 1.6s, grrr...
10:44 <debnet> Tu sais ma partie 1 met 3 secondes donc... :D
10:44 <mdk> 0.1s, LÀ voilà je commit, à chaque jours suffit sa peine.
10:44 <debnet> Bravo. ^^
10:46 <mdk> merci 🙂 maintenant je vais lire vos codes et la journée va pouvoir, OH IL EST DÉJÀ 11h ?
10:46 <debnet> Oui. ^^'
10:47 <debnet> J'ai pas encore commit.
10:48 <mdk> Haha entwanne qui fait de la philo : `free = not free` :)
10:56 <mdk> entwanne, finalement j'ai pas eu à merger les espaces vides contigus, de toute façons on ne déplace que vers la gauche, en partant de la droite, donc on ne crée des blocs vides qu'a des endroits où on ira pas mettre des fichiers
10:58 <entwanne> Ah oui c'est vrai
11:15 <debnet> Bon mes deux solutions sont linéaires. x)
11:15 <debnet> 3 secondes pour la partie 1 et 3 secondes pour la partie 2.
12:13 <discord_afpy_> <dancergraham> c'est joli - bien équilibré 😄
12:22 <debnet> Je vais essayer d'optimiser si j'ai le courage cet après-midi. Je pense que mon erreur est d'utiliser une immense liste, il doit y avoir moyen de faire mieux en calculant par avance les trous.
12:26 <entwanne> ouais j'ai l'impression qu'une liste de trous ça marche pas trop mal pour le problème
13:30 <debnet> Merde, mon optimisation marche avec l'exemple et pas avec mon input.
13:30 <debnet> Sinon c'était super fast. ^^
13:34 <debnet> Ah OK, il me manquait une condition.
13:36 <debnet> Voilà, moins de 200ms pour la P1 et moins de 500ms pour la P2 !
13:36 <debnet> Je suis content !
13:36 <debnet> @mdk Merci de m'avoir fait découvrir bisect, c'est incroyable. A la différence de toi, je ne me sers que de insort() mais c'est quand même incroyable.
13:38 <debnet> Y a moyen de gagner encore des ms en prunant les vides.
13:38 <debnet> Ah oui ça fait gagner beaucoup !
13:39 <debnet> @mdk Je t'ai battu du coup, 80ms ! :P
14:07 <discord_afpy_> <Andy K (boss dreamer ou pas)> Salut
14:09 <debnet> Salut !
15:04 <discord_afpy_> <lythari59> ça y est j'ai trouvé le temps de cleaner un peu mon code.
15:04 <discord_afpy_> <lythari59> 800ms part1, 2800 part2.
15:04 <discord_afpy_> <lythari59>
15:04 <discord_afpy_> <lythari59> je regarderais attentivement vos solutions quand j'aurais le temps.
18:53 <debnet> entwanne mdk lithari59 essayez cet input sur votre algo et dites moi combien de temps il prend https://jumpshare.com/v/cvdEeS5R3urwoWDvXPjy
19:13 <mdk> SIGMIAM
19:30 <entwanne> 2,8s P1 et 4m30s P2, mais je suis pas sur la même machine que tout à l'heure
19:31 <entwanne> (sur mon fichier puzzle la machine a l'air environ 1,5× plus lente que celle que j'avais tout à l'heure)
20:12 <debnet> Avec mon algo, les timings ne changent pas pour le evil input.
20:12 <debnet> Faut croire que j'ai utilisé une bonne méthode. :D
20:15 <debnet> Ah j'ai rien dit. xD
20:16 <debnet> 54 secondes, ça pique.
22:27 <mdk> $ time python day9.py → 1928 2858 real 0m0,065s
22:27 <mdk> @debnet ^
22:28 <debnet> Bien joué.
22:28 <debnet> Je suis fier de ma solution malgré tout, je la trouve élégante. :P
22:28 <mdk> je vais lire ça
22:30 <mdk> ahhh oui c'est concis 🙂
22:36 <debnet> Merci. ^^