static int compare (const void *x, const void *y) { const struct s *s1 = x, *s2 = y; int (*compare1) (int); int elt2; compare1 = s1->compare; elt2 = s2->elt; if (elt2 != 0 && debug () && compare1 (s1->elt) != 0) errors++; return compare1 (elt2); }
int main(){ int a,at,aa[3],b,bt,bb[3],c,ct,cc[3],i,j,re1=0,re2=0,re3=0; scanf("%d %d",&a,&at); for(i=1;i<=at;i++){ scanf("%d",&aa[i]); } scanf("%d %d",&b,&bt); for(i=1;i<=bt;i++){ scanf("%d",&bb[i]); } scanf("%d %d",&c,&ct); for(i=1;i<=ct;i++){ scanf("%d",&cc[i]); } for(i=1;i<=at;i++){ for(j=1;j<=bt;j++){ re1=re1+compare1(aa[i],bb[j]); } } if(re1>0){ printf("time conflicts! %d and %d\n",a,b); } for(i=1;i<=bt;i++){ for(j=1;j<=ct;j++){ re2=re2+compare2(bb[i],cc[j]); } } if(re2>0){ printf("time conflicts! %d and %d\n",b,c); } for(i=1;i<=at;i++){ for(j=1;j<=ct;j++){ re3=re3+compare3(aa[i],cc[j]); } } if(re3>0){ printf("time conflicts! %d and %d\n",a,c); } if((re1+re2+re3)==0){ printf("no time conflicts!\n"); } return 0; }
static int upheap(CHEAP *heap, int k) { GB_VARIANT_VALUE x; int r = 0; copy1(heap, k, &x); while (k && compare1(heap, &x, parent(k)) < 0) { copy(heap, parent(k), k); k = parent(k); r++; } copy2(heap, &x, k); return r; }
int main(int argc, char ** argv) { if (argc != 2) goto failure; int rc; rc = compare1(argv[1]); if (rc < 0) goto failure; printf("magic words: %s\n", get_secret()); return 0; failure: printf("sorry!\n"); return -1; }
static int downheap(CHEAP *heap, int k) { int count = GB.Count(heap->h), r = 0; GB_VARIANT_VALUE x; copy1(heap, k, &x); while (k <= parent(count - 1)) { int j, l = j = left(k), r = right(k); if (r < count && compare(heap, l, r) > 0) j = r; if (compare1(heap, &x, j) <= 0) break; copy(heap, j, k); k = j; r++; } copy2(heap, &x, k); return r; }