#include #include #include #include #define Max 100 #define HMAX 131 #define X 0 #define Y 1 typedef struct Trect { int count; //počet přímek float k; //přímka struct Trect *next; } Trect; int n,Best=1,hu[HMAX],used; // rytířů, v jedné řadě, použité indexy v hash int K[Max][2]; // celočíselné souřadnice rytířů Trect *hash[HMAX]; int main(void) { int i,j,f; float k; Trect *p,*P; scanf("%d",&n); for (i=0;inext=NULL; p->count=1; p->k=k; hash[f]=p; continue; } do { if (p->k==k) { //našli jsme dalšího na přímce Best = Best < ++p->count ? p->count : Best; break; } if (p->next==NULL) { p->next=(Trect *)malloc(sizeof(Trect)); p=p->next; p->next=NULL; p->count=1; p->k=k; break; } } while (p=p->next); } //vyčištění starých hodnot for(j=0;jnext!=NULL) P=p->next,free(p),p=P; free(p); hash[hu[j]]=NULL; } } printf("%d rytiru jednou ranou.\n",n==1?1:Best+1); return 0; }