#include #include #include #include #define DBG 0 int get_line(char *s, int max) { int i; fgets(s,max,stdin); i = strlen(s) - 1; while (i >= 0 && s[i] == '\n') i--; i++; s[i] = 0; return i; } int sgetint(char **s, int *x) { char *t = *s; while (isspace(*t)) t++; if (sscanf(t,"%d",x) != 1) return 0; while (*t && !isspace(*t)) t++; *s = t; return 1; } int dist(char * s, char * q) { int di = 0; if (s == q) return 0; while (*s) di += *s++ != *q++; return di; } char kody[2002][12]; int graf[2002][2002]; int main(void) { char line[50], *s = line; int N,i,j,min,run; while (1) { scanf("%d\n",&N); if (!N) break; for (i = 0 ; i < N ; i++) { get_line(kody[i],9); } for (i = 0 ; i < N ; i++) for (j = 0 ; j < i ; j++ ) { graf[j][i] = graf[i][j] = dist(kody[i],kody[j]); } ; min = 0x7fffffff; for (i = 0 ; i < N ; i++) { run = 0; for (j = 0 ; j < N ; j++ ) { run += graf[i][j]; } if (min > run) min = run; } printf("The highest possible quality is 1/%d.\n",min); } return 0; }