#include #include #include struct hrana { int u; int v; int d; } hrany[2000000]; int cmph(const void *a, const void *b) { hrana *aa = (hrana*)a; hrana *bb = (hrana*)b; if(aa->d > bb->d) return 1; else if(aa->d == bb->d) return 0; else return -1; } char trucks[2001][8]; int get_d(int t1, int t2) { int i=0; int d=0; for(i=0; i<7; i++) { if(trucks[t1][i] != trucks[t2][i]) d++; } return d; } int N; int uzly[2001]; int available, zapojeno; int main(void) { int i, j, h; hrana *hh; int Q; while(1) { scanf("%d", &N); if(N == 0) return 0; for(i=0; iu] == 0 && uzly[hh->v] == 0) { Q += hh->d; uzly[hh->u] = available; uzly[hh->v] = available; available++; zapojeno++; } else if(uzly[hh->u] == 0) { Q += hh->d; uzly[hh->u] = uzly[hh->v]; zapojeno++; } else if(uzly[hh->v] == 0) { Q += hh->d; uzly[hh->v] = uzly[hh->u]; zapojeno++; } else if(uzly[hh->v] != uzly[hh->u]) { Q += hh->d; zapojeno++; for(j=0; ju]) { uzly[j] = uzly[hh->u]; } } } if( zapojeno == N-1 ) break; } /* for */ printf("The highest possible quality is 1/%d.\n",Q); } }