int main(void) {
    activity_selector(s, f, ACTIVITY_COUNT, c, t);
    // output result
    trace_route(t, 0, ACTIVITY_COUNT - 1, result_index);
    printf("result = ");
    ElementType* result = result_index;
    while(*(result) != 0) {
        printf("%3d ", *result++);
    }
    printf("\n");
    return EXIT_SUCCESS;
}
Exemplo n.º 2
0
void activity_selector(int cur, int n) {
	int m = cur + 1;

	while (m <= n && ary[m].s < ary[cur].f) {
		m = m + 1;
	}

	if (m <= n) {
		rst[cursor++] = m;
		activity_selector(m, n);
	}
	return;
}
Exemplo n.º 3
0
int main() {
	int n;
	int i;
	cursor = 0;
	scanf("%d", &n);

	for (i = 1; i <= n; i++) {
		scanf("%d %d", &ary[i].s, &ary[i].f);
	}

	qsort(ary, n, sizeof(ACTIVITY), cmp);
	rst[cursor++] = 1;
	activity_selector(1, n);
	for (i = 0; i < cursor-1; i++) {
		printf("%d ", rst[i]);
	}

	printf("%d\n", rst[i]);
	return 0;
}