#include #include int main (void) { int K, k, N, n; double a[202]; float f, r; double pi = atan2(0,-1); int p[202]; int s; char possible; FILE *in = fopen ("probleme.in", "r"); fscanf (in, "%d\n", &K); for (k = 1; k <= K; k ++) { fscanf (in, "%d\n", &N); for (n = 0; n < N; n ++) { fscanf (in, "%f %f\n", &f, &r); a[n] = (double) f;} possible = 0; s = N; while (s >= 1 && !possible) { int i, j; for (i = 0; i < N && !possible; i ++) { possible = 1; for (j = 0; j < s; j ++) p[j] = 0; for (j = 0; j < N; j ++) { double ca = a[j] - a[i]; while (ca < 0.0) ca = ca + 2.0*pi; while (ca > 2.0*pi) ca = ca - 2.0*pi; ca = ca*((double) s)/(2.0*pi); p[(int) ca] ++; } for (j = 0; j < s; j ++) if (p[j] != N/s) possible = 0; } if (!possible) s --; } printf ("Data Set %d: %d slices\n", k, s); if (k < K) printf ("\n"); } fclose (in); return 0; }