Chat:Fr/2020-07-01

From CG community
Revision as of 11:00, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/44680749324682> Bon[]Crayon: Toc Toc Toc les bots AutomatonNN, Automaton2000 <img src=/a/40502547358772> AutomatonNN: oui <img src=/a/40502662118268> Automaton20...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Bon[]Crayon: Toc Toc Toc les bots AutomatonNN, Automaton2000

AutomatonNN: oui

Automaton2000: bon il y a longtemps

Bon[]Crayon: Salut

Magus: Salut tout le monde et Automaton2000

Automaton2000: qui ne marche pas pour moi

dbdr: pauvre AutomatonNN, on t'oublie?

AutomatonNN: voir pas le bon temps de contest de contest qu'on peut pas te plaire

tekki: salut tlm et yop AutomatonNN

AutomatonNN: surement que tu as pas besoin de te connecter au pire t'es tout seul sur le chat :(

tekki: AutomatonNN dessine-moi une matrice

AutomatonNN: ouais j'ai pas trop compris ce que tu veux dire

tekki: pourtant c'est simple, demande à AUtomaton2000 il t'expliquera ;)

Automaton2000: vu qu'on a pas encore compris

tekki: bon raconte-moi une histoire stp AutomatonNN

AutomatonNN: ové

tekki: ové? càd AutomatonNN?

AutomatonNN: re

Bon[]Crayon: AutomatonNN une histoire de tortue et de robot

AutomatonNN: oui

Bon[]Crayon: AutomatonNN :turtle: :robot:

AutomatonNN: utiliser des trucs de ce que tu veux dire

Bon[]Crayon: AutomatonNN oui

AutomatonNN: voila

Bon[]Crayon: ...

**Bon[]Crayon slaps around a bit with a large fishbot

Bon[]Crayon: (╯°□°)╯︵ ┻━┻

Bon[]Crayon: /me

Jambzee: Salut tout le monde

Jambzee: Salut Automaton2000

Automaton2000: du coup je suis obligé de mettre le nom de la fonction

Jambzee: Tu veux pas juste dire bonjour comme tout le monde Automaton2000 ?

Automaton2000: je croise les doigts pour toi

Jambzee: C'est gentil mais je veux juste un peu de politesse ...

pardouin: Bonjour la street, Automaton2000 et AutomatonNN o/

Automaton2000: oui enfin si c'est pour les faibles

AutomatonNN: vous allez bien en fait je suis pas sur que c'est pas trop compliqué de faire un truc pareil que je

Bon[]Crayon: Automaton2000 Tortue, bête infernale du Tartare.

Automaton2000: un peu plus que ça

Bon[]Crayon: Automaton2000 Tortue, bête infernale du chat CG.

Automaton2000: qui est la plus grande

Bon[]Crayon: Automaton2000 Tortue du chat.

Automaton2000: c'est juste le parser de cg je crois

Bon[]Crayon: Automaton2000 Tout s'explique.

Automaton2000: moi je l'ai vu dans un replay

Bon[]Crayon: Automaton2000 Et sur le chat ?

Automaton2000: bonjour j'ai un problème avec le puzzle

Bon[]Crayon: Bonjour le bot Automaton2000. Bienvenue sur le chat.

Automaton2000: bah c'est pas une mauvaise idée

Bon[]Crayon: Automaton2000 non plus

Automaton2000: ah merde je viens de trouver un bug dans mon code

Bon[]Crayon: Automaton2000 DON'T PANIC!

Automaton2000: est ce que vous avez fait le puzzle de dwarfie

Bon[]Crayon: Automaton2000 celui avec les nombres premiers

Automaton2000: je ne suis pas du tout le temps

Bon[]Crayon: Qui est vous Automaton2000 ?

Automaton2000: mais le mieux c'est de faire des tests

Bon[]Crayon: Automaton2000 Est vous un bot ?

Automaton2000: on en a pas tant que ça

Bon[]Crayon: Automaton2000 Ils sont partout.

Automaton2000: quelqu'un connait le jeu de test

Bon[]Crayon: Automaton2000 personne

Automaton2000: o/ à tous et à Bon[]Crayon

Bon[]Crayon: o/ Autmaton2000

Bon[]Crayon: o/ à tous

Bon[]Crayon: o/ Automaton2000 :robot:

Automaton2000: et il n'est pas nécessaire

Default avatar.png RiuuzakyL: bonjour j'ai un problème sur le jeu de batman, au niveau des inputs j'ai ce message d'erreur :Failure: invalid input. Expected 'x y' but found 'DR' pourtant c'est le jeu qui a chosiit par defaut de regarder cette inuput là enfin dnas le code fournit de base

Default avatar.png JBM: essaie de mettre des chiffres plutot que des lettres

Default avatar.png RiuuzakyL: le truc c'est quej'ai l'impression que l'erreur vient des entrées du jeu mais cellle-ci sont envoyé par le jeu lui même à chaque tour du coup je sais vraiment pas pourquoi ça plante

Default avatar.png JBM: je vois ca, mais as-tu essaye d'envoyer des nombres plutot que des lettres

Default avatar.png RiuuzakyL: bah les inputs sont fixées par le jeu nn? c'est pas moi qui décide quoi envoyé en input de ce que j'ai compris

Default avatar.png JBM: tes inputs ne sont pas le pb

Default avatar.png RiuuzakyL: je comprends pas alors ^^ car le message d'erreur est celui-ci : Failure: invalid input. Expected 'x y' but found 'DR'

Default avatar.png JBM: c'est l'input du juge qui est mauvaise

Default avatar.png JBM: l'input du juge, c'est ton output

Default avatar.png JBM: (12:52:22) JBM: essaie de mettre des chiffres plutot que des lettres

Default avatar.png RiuuzakyL: mmmm ok jviens de comprendre merci bcp pour ton temps

Alshock: Tiens c'est vrai que c'est un facteur de confusion pour le joueur. J'y avais jamais pensé.

Thyl: yo!

Thyl: Automaton2000

Automaton2000: comment tu le sais pas

Thyl: c4EST APRCE QUE JE LE SAIS Automaton2000

Automaton2000: oui mais ça a l'air mieux que le précédent

Alshock: eh oh ! le précédent c'est moi Automaton2000 alors un peu de respect veux-tu ?

Automaton2000: je dis ça parce que ça change rien

Alshock: ah ouais d'accord, j'me fais bully par des bots et ils se savent intouchables T_T

mandajm: yooo o_o

Alshock: yo mandajm

pardouin: o/

Driikolu: http://chat.codingame.com/pastebin/364c78de-3fb9-4c95-8aa0-3831c37085aa

Driikolu: Et mon message est trop long

pardouin: ça peut être que tu print un truc de trop

Driikolu: C'est ptet parce que j'ai rajouté un " " à la fin et j'ai pas fait gaffe !

Driikolu: Je viens d'y penser ouais

pardouin: il te dit qu'il n'attendait pas de print, comprendre "pas de print supplementaire"

Driikolu: Ou une newline

Driikolu: A faire du code trop sale, j'oublie parfois des petites mecaniques...

Default avatar.png JBM: ile code sale, c'est un art de vivre

pardouin: et allez encore un CoC où je passe 100% des tests et 85% quand je submit

pardouin: un truc où il fallait faire un BFS pour simuler le "pot de peinture" de paint

leojean890: met lui une mauvaise note hehe, ça signifie que les tests d'exemple sont pas bons/exhaustifs si c'est un reverse ? (à part si t'as mal lu ?)

pardouin: un fast mode

leojean890: BFS en COC en 15 min ?

leojean890: jamais vu ça pour le moment (enfin j'ai fait que 14 COC..)

pardouin: d'ailleurs je vais sans doute gagner malgré mon 85% parce que pas évident pour le pékin moyen

leojean890: BFS si t'es pas habitué ça peut facile mettre plus de 15 min

pardouin: ils ont tous 0% pour le moment XD

pardouin: reste 2min

leojean890: le temps de comprendre le sujet

leojean890: de coder le bfs, l'adapter au pbm

leojean890: 15 min fau être fast quoi

leojean890: faut

pardouin: j'ai fait ça :

pardouin: http://chat.codingame.com/pastebin/bf006d7d-4cbc-4435-91a4-0602adc9f401

pardouin: je pense que le soucis c'est le: if M[ii][jj]==old:

                   M[ii][jj] = new
                   _explo.append((ii,jj))

leojean890: for i in range(height): print(*M[i]) => sur 1 seule ligne, ça passe en python ?

pardouin: j'aurais du aussi rajouter à l'explo si c'était déjà rempli de la nouvelle couleur

pardouin: oui

leojean890: j'peux gagner des carac dans ce cas j'pense avec ça :P

leojean890: j'pensais qu'on devait vraiment indenter des blocs

pardouin: c'est chiant de pas pouvoir revenir dessus pour tester

pardouin: non pas obligé si tout tient sur une ligne

pardouin: bon ben premier quand même, le second a 28% ^^

leojean890: pas facile quand même :P

leojean890: tu px faire pareil avec des if ?

leojean890: if a : b

leojean890: faut avoir son template de bfs que tu réutilises direct dans ces situs

leojean890: j'ai ça pour les multis perso :P

leojean890: je copie colle de l'un à l'autre et je change 2 3 bricoles

leojean890: ah en vrai pas besoin avec les if

leojean890: o+=[r,"0"+r][len(r)<7]

leojean890: vu qu'on peut faire çaen 1 ligne

pardouin: oui

pardouin: mais sinon oui tu peux ne pas passer de ligne si ça tient en 1 ligne

pardouin: les templates ce qui est relou c'est d'adapter toutes les variables

pardouin: pour un truc très long ça vaut le coup mais pour un truc moyennement long comme ici je sais pas si tu y gagnes tellement par rapport à tout écrire en ayant bien tes noms de variables et ton contexte en tête

pardouin: quand tu perds 5min à comprendre un bug qui venait juste d'un mauvais nom de variable tu as les boules ^^

leojean890: je viens de faire ça dans mes golf, j'ai gagné entre 2 et 8 carac par golf;P

pardouin: :)

Alshock: @leojean890oui tu peux et si tu veux avoir plusieurs instructions tu peux les séparer par des ;

leojean890: mauvais nom de variable j'avoue ;o

leojean890: Alshock ouais je le fais déjà ça :P

leojean890: je gagnais de la place dans les boucles en direct

Alshock: @leojean890 parfait maintenant ton code est bien illisible c'est tout ce qu'on veut$

leojean890: par contre pour les imbrications j'avais pas trop de solutions

leojean890: j'avoue :P:P

leojean890: genre en imbriquant je prends tjr plein de caracs

Alshock: ah je sais pas si on peut faire for ...: if ...: ...

pardouin: non on peut pas

Alshock: c'est vraiment mal branlé le python :P

pardouin: ce changement d'avatar en direct

fauresebast: si tu es obligé de faire des indentations, tu peux faire des indentations avec un seul espace ;)

Alshock: cette photo a été prise par mon père @pardouin, je tiens a signaler que j'ai pas changé la compression de l'image que j'ai reçue xD

Alshock: @fauresebast oui mais si tu fais des indentations c'est que t'as plusieurs lignes, tu as donc failli à ta mission de golfeur

pardouin: el famoso potato

leojean890: bah j'ai plusieurs lignes et des indentations avec 1 espace..

pardouin: oui enfin un while dans un while, même avec de la bonne volonté tu as pas des masses de substitutions possibles

leojean890: mais dans chuck norris j'ai un mauvais truc avec plusieurs imbrications..

leojean890: les autres sont mieux

Alshock: @pardouin je suis sûr que ça peut se condenser avec des bitshifts :santa:

pardouin: tu as quoi comme taille de code?

leojean890: als att je te dis ça :P

leojean890: 235 chuck norris mdr

leojean890: 221 don't panic

pardouin: moi dans l'ordre dans les 4 trucs j'ai: 165 ; 122 ; 67 ; 92

leojean890: temperatures 108

pardouin: sans bash, sans hardcode

leojean890: thor 147

leojean890: et ce même en appliquant les idées que tu m'as données hier ;P

leojean890: et non sans bash ni hardcode non plus :P

leojean890: j'ai pas les valideurs :P

pardouin: il y a encore un bonne marge de gain possible alors

pardouin: ça veut dire que tu peux encore apprendre des trucs :D

leojean890: clair j'suis loin derrière toi :P

leojean890: pour les 4

leojean890: et ecore j'ai appris qq trucs de Stilgart Haashi et dwarfie dans le chat aussi ;P

leojean890: encore*

pardouin: dans thor typiquement tu peux faire des +=bolléen

leojean890: et en proportions des gens que je bats.. CN est celui dans lequel j'ai la pire perf

leojean890: ouais mais y'a 2 variables à modifier

leojean890: +=bool pour le y, ou x

leojean890: car ajout de 1

leojean890: mais y'a le S, E, W à ajouter aussi

pardouin: y+=Y>y;x+=x<X-x>X

pardouin: ce genre de truc

pardouin: il va jamais au nord

leojean890: ouais le nord ils m'ont dit

leojean890: mais faut MAJ la lettre aussi

leojean890: moi j'applique pas ce que t'as écrit car j'ai aussi s+="S" par ex

leojean890: à moins que tu fasses ça d'un coup à la fin

leojean890: genre maj les x y avant puis les S E W après en fonction

pardouin: :)

pardouin: tu peux faire des affichages modulables genre "truc"*(booleen)+"machin"*(booleen)

pardouin: en regardant mon DP j'ai remarqué un truc et j'ai gagné 3 chars :D

leojean890: ah pour modif le y et le string printé d'un coup ?

leojean890: à voir alors

pardouin: chuck norris tu peux gagner plein de chars en utilisant groupby du module itertools

leojean890: pareil souvent j'avance par paquet de 3 environ :p

Alshock: wolah wolah, vous m'avez fait regarder les golf

pardouin: tu perds plein de chars avec import itertools as i mais ensuite tu as direct tout à dispo

Alshock: et bah j'ai jamais fait don't panic, enfin je veux dire je suis 1979e dessus en ruby

leojean890: ah ok sympa je connais pas je vais regarder :P

leojean890: DP comme toi Alshock 1980/7877

pardouin: et sinon dans temperaturs tu peux utiliser l'astuce du min vide que je t'ai filé hier

leojean890: ah ouais pour le cas où on a rien ?

leojean890: j'ai essayé hier soir j'y ai pensé justement mais j'ai pas réussi, je vais poursuivre

pardouin: d'ailleurs temperatures c'est celui où je pense que j'ai le moins de marge de progression, 67 chars je vois pas comment faire mieux, je vois zero endroit où je suis pas efficace

leojean890: Affichez 0 (zéro) si aucune température n'est fournie. => utiliser ta méthode

pardouin: voila

leojean890: mais hier soir j'ai pas réussi j'ai essayé

leojean890: mais j'vais poursuivre

pardouin: min(L or[0])

leojean890: j'ai un truc moche comme ça perso

leojean890: for i in map(int,f().split()):t=[t,max(t,i)][i==-t];t=[t,i][abs(i)<abs(t)]

pardouin: moi j'ai : I=input I() et ensuite un one-liner

leojean890: pareil le début

leojean890: je l'ai pas copié collé

leojean890: avec f() au lieu de l()

Alshock: en Ruby les 48 chars de temperatures il fait plaiz :P

Alshock: mais bon c'est de la triche c'est fait pour

pardouin: oui ruby forcément tu as plein de fonction build in sous forme de propriétés

pardouin: donc forcément entre f(x) et x.f déjà tu gagnes 1 char à chaque fois

pardouin: et globalement le nom des fonctions est assez court

pardouin: get put, etc

pardouin: tu as les ternary operators a?b:c

pardouin: enfin plein de trucs cools quoi

Alshock: mais MDR, en python j'avais géré le cas zéro température avec ça : print(int(input())and ...)

Alshock: @pardouin f(x) c'est pour les faibles, nous on écrit f x

leojean890: ah oui car premier input == 0

leojean890: tiens je passe de 108 à 102 avec ton idée Alshock ;P

leojean890: t=int(f())*999

leojean890: au début

leojean890: avec 99 ça amrche pas

Alshock: mais quelle horreur xD

leojean890: xD

leojean890: dans un des valideurs y'a des temps tellement hautes que j'dois multiplier par 999

leojean890: si c'est 0 ça reste 0

Alshock: je comprends pas pourquoi tu multiplies ?

leojean890: histoire d'avoir un gros t

leojean890: ensuite je réduis en prenant tjr le min

Alshock: ah tu le mets dans le min ?

leojean890: for i in map(int,f().split()):t=[t,max(t,i)][i==-t];t=[t,i][abs(i)<abs(t)]

Alshock: t=int(f())**9 suffit pas ?

Alshock: tu gagnes un char

leojean890: ah ouais j'avoue

leojean890: j'suis noob en golf hein :P

Alshock: moi aussi, mais je suis très fort en idées dégueux :P

Alshock: oooh mieux t=int(f()*9)

leojean890: mon for est pas optim du tout aussi ;P

leojean890: ah ouais nice

leojean890: concaténer 9 fois le même char

leojean890: gg mec;p

Alshock: et avec 100 températures tu te retrouves à stocker des bigints xD

leojean890: j'ai 100 carac now

leojean890: en effet :P

leojean890: ça va ça passe xD

pardouin: une astuce pour temperatures : quand on doit donner un min sur 2 critères, au lieu de faire min(L,key=truc hyper long pour gérer les deux critères), on peut faire min(sorted(L,key=2nd critere),key=1er critere)

pardouin: si un des deux critères est la clé par défaut tu y gagnes encore plus vu que même plus besoin de spécifier la clé

Alshock: mais pourquoi pas min((critere1, critere2) for ...) ?

pardouin: beaucoup trop long

Alshock: ah bah en fait je checke je suis en train de vendre mon code là :P

leojean890: ah ouais, bah moi le pbm c'est "valeur plus grande si valeur absoue est egale"

leojean890: t=[t,max(t,i)][i==-t];t=[t,i][abs(i)<abs(t)]

pardouin: tu coup ton critere 1 c'est abs

leojean890: géré en 2 cas distincts

Alshock: c'est là que je dois te gratter 2 char à tous les coups

leojean890: ah ouais critere 1 abs

leojean890: critere 2 max

pardouin: et ton critère deux c'est l'opposé de la val

Alshock: je peux pas abs parce que j'ai pas de int perso x.o

leojean890: c'est l'opposé seuement si c le max du coup

leojean890: mais ouais j'avoue y'a ptet moyen d'amélio

pardouin: oui mais comme tu vas sort

pardouin: et que le sort par défault est croissant

pardouin: ou bien tu utilises une astuce pour transformer un sort croissant en décroissant à peu de frais :D

pardouin: un truc plus court que reverse=True

leojean890: :P

Alshock: mais c'est quoi la strat du min pourquoi ça marche pas ? T_T je vais devoir lire la doc

Alshock: [::-1] ?

pardouin: quoi exactement?

leojean890: plus court que reverse=True

pardouin: voilz

leojean890: ah ouais [::-1] ça fait ça

leojean890: inverser les elements d'une liste

leojean890: nice:P

pardouin: eh ben avec ça tu fais ton sort par defaut, tu reverse et tu min avec la clé abs

leojean890: j'avoue, sort pour min avec abs comme clé, puis sort une seconde fois

leojean890: j'vais essayer :P

Alshock: abs(x) c'est long pour ordonner les valeurs selon leur absolu

Alshock: de 2 char

leojean890: t'as un truc plus court que ça ?:P

pardouin: l'avantage c'est que abs c'est une fonction build in

Alshock: ouais, y a un opérateur très court qui permet de faire ça en python :D

pardouin: donc tu peux faire key=abs

Alshock: oui pour un map c'est cool

Alshock: mais si t'as un key= c'est déjà très long non ?

pardouin: tu as combien de chars alshock en python sur temperatures?

leojean890: j'me demande de quel opé tu parles :P ptet des magouulles avec / et %

Alshock: 69

pardouin: oui mais si tu fais un sort avec un tuple du coup tu es obligé de chercher un for truc in machin

Alshock: ouais bah dans mon input().split() quoi

pardouin: dans ma solution à 67 j'ai pas de for :)

Alshock: comment il crâne, attends je cherche des trucs à débroussailer

Default avatar.png JBM: pfiou, 29 les meilleurs

Default avatar.png JBM: ca faisait longtemps que j'avais pas regarde

leojean890: tiens j'suis à 74 grâce à vos tips, thx :P

leojean890: ah ,non 67 :P

Default avatar.png JBM: dans mon IDE: un code de la bonne longueur mais qui fait pas 100% :'(

leojean890: ah 29 carrément xD

pardouin: j'ai tenté de voir avec le carré alshock mais j'arrive pas à mieux que 69

pardouin: JBM et en python sans bash ni hardcode?

pardouin: on cherche à voir si on peut faire mieux que 67

Alshock: moi j'arrive à faire toute la plage des possibles entre 69 et 74 xD

Default avatar.png JBM: je touche pas a python si je peux y echapper

pardouin: :)

Alshock: et en ruby ? :D

Default avatar.png JBM: j'ai et bash et perl en mieux que 69, je me sens pas challenged

pardouin: alshock j'ai trouvé ça de rigolo en 69 : un max sur (1/x/x,x)

pardouin: mais bon ça fait pas avancer le shmilblick

leojean890: mdr ces astuces farfelues ;P

leojean890: p'tet qu'on peut aussi trouver des astuces sympa de golfing sur le net d'ailleurs ;P

leojean890: j'regarderai un de ces 4

pardouin: et hop 2 chars sur DP :)

leojean890: jvais tenter d'appliquer tes idées du genre s="S"*b>y+"E"*a>x+"W"*x>a;y+=b>y

leojean890: dans thor

leojean890: ah bah 99 chars

leojean890: 95

leojean890: dmg on doit mettre les bool entre parenthèses ça fait perdre 6 chars ;P

leojean890: (b>x)

leojean890: string*bool

leojean890: priorité entre * et >

leojean890: "S"*b>y ça fait le * en premier

Neozero: Bonjour,

Neozero: Je comprend pas pourquoi ce code donne 8 et 23 et non 8 et 8 en C.

Neozero: https://onlinegdb.com/BJNG6N5CI

Neozero: Ca ne fait aucun sens pour moi.

Default avatar.png JBM: c'est pour un cours?

Neozero: Hmm non c'était pour m'entrainer sur le C

Neozero: Mais j'ai trouver la solution grâce à l'aide de RockyMullet sur le chaét anglais

Default avatar.png RiuuzakyL: yota quand je lance un test pour un le jeu batman ep2 je peux le faire avancer de round en round sauf que un round c'est un passage entier dans ma boucle , il y aura pas moyen lors du test de voir carrément l'évolution ligne par ligne pour voir dans quel boucle le programme rentre excatement pour vérifier plus simplement les booleans ?

darkhorse64: printf ?

Zorg1: comment es ton stdio Automaton2000 & AutomatonNN ?

Automaton2000: comment tu fais pour le moment

AutomatonNN: vous allez pas comment tout le monde et toi ?

Zorg1: je fais bli Automaton2000

Automaton2000: si t'as pas de problème

Magus: genre j'ai un bot qui me fait une PR sur brutaltester

Magus: Automaton2000 c'est ton pot dependabot ?

Automaton2000: je comprends même pas comment on fait pour savoir si je peux aller voir le referee

Default avatar.png MassiveAuntieFromTheSwamps_c20a: :heart_eyes:

dbdr: Magus: c'est quoi ce délire?

Neumann: Un bot github qui détecte les et fais des PR sur les dépendances obsolètes

Neumann: fait *

Neumann: https://docs.github.com/en/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates

Magus: dbdr: comme a dit Neumann. C'est juste un bot qui fait des PR automatiques. Pour brutaltester c'est parce que log4j2 a déclaré une faille de sécurité majeur dans la version qui était dans le pom.xml

Magus: donc le bot a fait une PR avec une version plus récente

pardouin: je viens de battre Basim et DiL (top1 et top3) en golf dans le même CoC :D

Zorg1: nice

pardouin: ils me défoncent en fast mode par contre ^^

Zorg1: fix ton bot CoC :p

Zorg1: améliore ta gruge

pardouin: les bots CoC c'est des joueurs qui les ont mis ou bien c'est CG ?

pardouin: ou peut-être un peu des deux ?

Neumann: Ca dépend lesquels

Zorg1: normalement les seul autorisés sont ceux de CG, qui permettent d'assurer d'avoir toujours des joueurs quelque soit l'heure

Zorg1: (généralement ils sont tous Level 7 et quand tu regardes leur stat ont un nombre halucinant de CoC)

Zorg1: ah ils ont même mis que c'était un bot dans l'à propos

Zorg1: ils parlent de leurs bots là : https://www.codingame.com/blog/clash-of-code-time-has-come-for-clash/

Zorg1: houla j'ai pas trollé de la journée sur ce chat. je dois couvrir un truc :(

Zorg1: automaton2000 raconte moi une histoire

Automaton2000: salut tout le monde s'en tape

Zorg1: :(

Zorg1: méchant bot, Automaton2000 !

Automaton2000: qu'est ce que tu fais pas de swap

Zorg1: je swap avec moi même, ça change pas énormément l'état, Automaton2000

Automaton2000: mais je veux pas le savoir

Zorg1: ok

leojean890: pardouin en battant les premiers tu vas gagner plein de places j'imagine ;P

Default avatar.png JBM: oui Zorg1 reveille-toi!

Default avatar.png JBM: on s'inquiete

pardouin: bof pas tant que ça je suis 32ème

pardouin: enfin c'est déjà pas mal :)

leojean890: t'as bien grimpé encore ces jours ci ;)

Default avatar.png JBM: a quand la premiere place?

leojean890: tiens on peut pas factoriser ça ..

leojean890: y=map(int,input().split())

leojean890: au lieu de y=input()

leojean890: histoire de gagner des carac:p

Default avatar.png JBM: si on pouvait, je suis pas sur que je te le dirais :p

leojean890: bah j'essaye et ça plante :P

leojean890: sauf sur le valideur 1 de DP

leojean890: donc.. faut que je comprenne pk

leojean890: sur les 6 autres ça plante

Default avatar.png JBM: c'est quoi dp?

leojean890: don't panic

Default avatar.png JBM: mmmk

Default avatar.png JBM: non parce qu'entre pikaptcha et double p euh dynamic programming

Default avatar.png JBM: on 'sy retrouve plus

leojean890: ah ouais;P

Default avatar.png JBM: :P

leojean890: y=map(int,input().split())

leojean890: f,h=y

leojean890: ValueError: not enough values to unpack (expected 2, got 0)

leojean890: mais pas dans le valideur 1 ;)

leojean890: p'tet car il a un seu étage

leojean890: seul

pardouin: tu es sûr que l'input() contient deux trucs?

pardouin: c'est DP le puzzle ou le golf ?

leojean890: nbElevators lignes suivantes : un couple d'entiers elevatorFloor elevatorPos donnant respectivement l'étage et la position d'un ascenseur.

leojean890: golf

leojean890: donc 2 trucs ouais ;P

leojean890: y=map(int,input().split());z,w,r,k,x,h,j,n=y;e={k:x,-1:w}

leojean890: for i in' '*n:f,h=y;e[f]=h

leojean890: mais quand je mappais juste sur input ça allait en fait :)

pardouin: I=lambda:input().split()

pardouin: et quand tu veux en faire un tu fais I()

pardouin: sinon il demandera pas de nouvel input

leojean890: ah ouais ok thx j'vais essayer ça :P

leojean890: donc on peut pas factoriser tt le map :P

pardouin: :)

pardouin: j'en suis à 160 sur celui-là

leojean890: 210

leojean890: pour le moment

leojean890: et je vais essayer itertools sur chuck comme t'as conseillé :P

leojean890: itertools.groupby

leojean890: pour regrouper les listes de 1 ou de 0

pardouin: tu connais la technique : 'BWLAOICTK'[le booleen qui va bien::2]

pardouin: ?

leojean890: ensuite maybe avec un dico et la len des listes afficher ce que je veux

leojean890: non je ne connais pas

pardouin: tu parcours ta str de 2 en 2

leojean890: ah ouais

pardouin: si le booleen vaut false tu pars de 0 et donc ça donne BLOCK

leojean890: j'ai pas l'habitude encore des ::N

pardouin: sinon ça donne WAIT

leojean890: je l'ai fait jste pour reverse

leojean890: ah ouais sympa

pardouin: tu gagnes 2 chars par rapport à un: ["BLOCK","WAIT"][booleen]

leojean890: ah ouais thanks

leojean890: faut que j'utilise plus souvent ::N

pardouin: ça marche quand tu as deux mot de même longueur ou qui different d'un char

leojean890: avec autre que -1

pardouin: genre YES NO

leojean890: ah ouais ok, normal du coup si ça va de 2 en 2

leojean890: YNEOS

pardouin: en général ce qui sert c'est ::-1 et ::2

pardouin: le reste très rarement

leojean890: ::3 pour 3 mots ?:P

pardouin: oui mais alors il faut se démerder pour que le truc vale 0, 1 ou 2

leojean890: ouais c plus chaud

leojean890: qu'un booleen qui donne 0/1

leojean890: gain de 7 chars grâce à ton astuce : y=lambda:input().split()

leojean890: au lieu de y=input

leojean890: sur don't panic

leojean890: je vais expérimenter le ::2

leojean890: c'est good

pardouin: allez bonne nuit

leojean890: good night:)

Default avatar.png JBM: rhaaa j'avance pas

Default avatar.png JBM: perfectionnisme au mauvais moment

Default avatar.png osghr: c bon.