#include #include #include #include static char vec[101]; static int gv[101]; int main(void); int main(void) { int base; int len; int i; int n; int x; srandom(time(0)); bzero(&vec[0],101); n = 0; while (1) { if (random() & 1) { len = (random() % 5) + 1; } else { len = 10; while (random() & 1) len += len; if (len > 100) len = 100; len = (random() % len) + 1; } switch (random() & 15) { case 0: base = random() % ((n < 5) ? 5 : n); printf("ig %d %d\n",len,base); if (n-base < len) { len = n - base; if (len < 0) len = 0; } printf("oget: (%d)",len); x = 0; for (i=0;i<101;i++) if (vec[i]) gv[x++] = i; for (;x<101;x++) gv[x++] = 0xfeedbeef; for (i=0;i0;len--) vec[base++] = 0; } else { printf("i+ %d %d\n",base,base+len-1); for (;len>0;len--) vec[base++] = 1; } break; } n = 0; for (i=0;i<100;i++) if (vec[i]) n ++; printf("ocurrent: (%d)",n); base = -1; for (i=0;i<101;i++) { if (vec[i]) { if (base < 0) base = i; } else { if (base >= 0) { if (base == i-1) printf(" %d",base); else printf(" %d-%d",base,i-1); } base = -1; } } printf("\n"); } }