• [^] # Re: Ada ?

    Posté par (site web personnel) . En réponse à la dépêche Concours de programmation CodinGame le 22 mars 2014. Évalué à 3.

    Bon, je viens de voir la faisabilité du bash en refaisant le dernier concours. Et franchement c'est super jouable :D. Tout dépend de ce qui est à faire et des structures de données utiles.

    J'ai plus de 50pts avec ce code fait en 15-20mn (ça fait des mois que je n'avais pas fait de bash):

    #!/bin/bash
    # Read init information from standard input, if any
    read TX TY
    while true; do
     # Read information from standard input
     read H N
     geantsX=()
     geantsY=()
     sumX=0
     sumY=0
     close=0
     for ((i=0;i<$N;i++)); do
     read X Y
     geantsX[i]=$X
     geantsY[i]=$Y
     sumX=$((sumX + X))
     sumY=$((sumY + Y))
     diffX=$((TX - X))
     diffY=$((TY - Y))
     diffX=${diffX#-}
     diffY=${diffY#-}
     if (( diffX + diffY < 3 )); then
     close=1
     fi
     done
     if (( $close )); then
     echo "STRIKE"
     continue
     fi
     bcX=$((sumX / N))
     bcY=$((sumY / N))
     echo `{mathjax} sumX `sumY 1>&2
     s=
     if (( TY > bcY )); then
     s="N"
     (( TY-- ))
     elif (( TY < bcY )); then
     s="S"
     (( TY++ ))
     fi
     if (( TX > bcX )); then
     s="${s}W"
     (( TX-- ))
     elif (( TX < bcX )); then
     s="${s}E"
     (( TX++ ))
     fi
     if [[ "vide$s" = "vide" ]]; then
     echo "WAIT"
     else
     echo $s
     fi
    done