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; }
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; }
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; }