#include #include #include #include #define EPSILON (0.0000001) #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); /* 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 (l != 0 && s < 0.5 * k) kroku--; printf("Strazny ujde %d ponorku.\n", kroku); } return 0; }