#include int pocet; int vektor[300][2]; int linka[300][10]; int pole[300][300]; int mensi(int i, int j) { if (vektor[i][0] < vektor[j][0]) return(i); if (vektor[i][0] > vektor[j][0]) return(j); if (vektor[i][1] < vektor[j][1]) return(i); if (vektor[i][1] > vektor[j][1]) return(j); return(0); } void testuj(void) { int i, j, k; int vek1[2], vek2[2]; double rozd1, rozd2; int porucha, linie = 0; for (i = 1; i < pocet-2; i++) { /* printf("Porovnavam: %d, ", i); */ for (j = i+1; j < pocet-1 && pole[i][j] < 0; j++) { /* printf("%d, ", j); */ porucha = 0; vek1[0] = abs(vektor[i][0] - vektor[j][0]); vek1[1] = abs(vektor[i][1] - vektor[j][1]); for (k = j+1; k < pocet; k++) { /* printf("%d\n", k); */ vek2[0] = abs(vektor[i][0] - vektor[k][0]); vek2[1] = abs(vektor[i][1] - vektor[k][1]); rozd1 = vek1[0]/(double)vek2[0]; rozd2 = vek1[1]/(double)vek2[1]; if (rozd1 == rozd2) { if (porucha == 0) { linka[linie][0] = i; linka[linie][1] = j; pole[i][j] = linie; pole[j][i] = linie; porucha = 2; } linka[linie][porucha] = k; pole[i][k] = linie; pole[j][k] = linie; pole[k][i] = linie; pole[k][j] = linie; porucha++; } } if (porucha > 0) linie++; } } if (linie == 0) { printf("Smernice byla dodrzena.\n"); } else { printf("Tito policiste porusuji smernici:\n"); for (i = 0; i < linie; i++) { for (j = 0; j < 9 && linka[i][j] >= 0; j++) { printf("(%d,%d)", vektor[linka[i][j]][0], vektor[linka[i][j]][1]); } printf("\n"); } } } int pracuj(void) { int i, pomoc; pocet = 0; do { scanf("%d %d", &vektor[pocet][0], &vektor[pocet][1]); /* printf("Nacteno: %d %d\n", vektor[pocet][0], vektor[pocet][1]); */ for (i = 0; i < 10; i++) { linka[pocet][i] = -1; } for (i = 0; i < 300; i++) { pole[pocet][i] = -1; pole[i][pocet] = -1; } for (i = 0; i < pocet; i++) { if (mensi(i, pocet) == pocet) { pomoc = vektor[i][0]; vektor[i][0] = vektor[pocet][0]; vektor[pocet][0] = pomoc; pomoc = vektor[i][1]; vektor[i][1] = vektor[pocet][1]; vektor[pocet][1] = pomoc; } } pocet++; } while (vektor[0][0] != 0 || vektor[0][1] != 0); if (pocet > 1) testuj(); pocet--; return pocet; } int main(void) { while (pracuj() > 0) printf("\n"); return(0); }