#include #include #include #include #define EPSILON (0.001) #define rational_t double int main(void) { int k; int useku; int kroku; int i; int zad; rational_t s, l; scanf("%d", &zad); while (zad--) { scanf("%d %d", &k, &useku); kroku = 0; l = 0; for (i = 0; i < useku; i++) { scanf("%lf",&s); /* printf("delka useku %f zbylo %f\n", s, l); */ s -= l; /* printf ("odectu %d\n", (int) (s / k)); */ kroku += (int)(s / (rational_t) k); /*s = (rational_t) fmod ((double) s, (double) k);*/ s -= ((int)(s / (rational_t) k)) * k; /* printf ("s = %f\n", s); */ if (abs(s) > EPSILON) { kroku++; l = (rational_t) sqrt((double) k*k - (double) s*s); } else l = 0; /* printf("sz = %f l = %f p = %d\n-------------------\n", s, l, kroku); */ } /* for */ if ((abs (l) > EPSILON) && (s < 0.5 * k - EPSILON)) kroku--; printf("Strazny ujde %d ponorku.\n", kroku); } return 0; }