CodinGameのMars Lander 1の模範解答への蛇足コメント

http://ethiery.vvv.enseirb-matmeca.fr/CGsolo/mars-lander-1.html
このサイトに載っているコードの一部にコメントを追加します。

      /* もし今スラスターを吹かしてなくて、今からスラスターを吹かし始めて、
   スラスターが最大に吹かされた時の垂直速度と高度を求める*/
   
        double vdY = (double)dY;
        double vY = (double)Y;
        for (double i = 0.0; i <= 4; i++) {
            vdY += i - 3.711;
            vY += vdY;
        }

   /*その時、着地していなくて、落下中である限り、一秒後の高度と落下速度を求める。
   最後に求められる高度と落下速度は、着地した時、または上昇し始めた時の、高度と落下速度。*/
        while (vY > groundY && vdY < 0) {
            vdY += 0.289; // 4-3.711;
            vY += vdY;
        }

      //その時落下速度が-40以上なら、今スラスターを吹かさない、-40以下なら、今吹かす。
        printf((vdY > -40.0) ? "0 0\n" : "0 4\n");

   /*もし今スラスターを吹かしているとしたら、「以降スラスターを全開に吹かしていい」という計算結果を
   すでに出しているはずで、さらに、今スラスターを吹かしていないと仮定した場合の着地時の落下速度は
   実際の着地時の落下速度よりも小さくなり、「スラスターを全開に吹かす」という出力を出すので、問題ない*/