赞
踩
- /* 事件序列问题 */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <stdbool.h>
- #include <algorithm>
-
- using namespace std;
- typedef struct event {
- int no, bgn, en;
- } event_t;
-
- bool cmp(const event_t e1, const event_t e2) {
- return e1.en < e2.en;
- }
-
- const int N = 12;
- event_t arr[N];
- int res[N];
-
- int main() {
- FILE * fin = fopen("in.txt", "r");
- for (int i = 0; i < 12; i++) {
- arr[i].no = i;
- fscanf(fin, "%d %d", &arr[i].bgn, &arr[i].en);
- }
- sort(arr, arr + N, cmp);
- int i = 0, index = 0, startTime = 0;
- while (i < N) {
- if (arr[i].bgn >= startTime) {
- res[index++] = arr[i].no;
- startTime = arr[i].en;
- }
- i++;
- }
- for (int j = 0; j < index; j++)
- printf("%d ", res[j]);
- putchar('\n');
- fclose(fin);
- return 0;
- }
- /*
- 1 3
- 3 4
- 0 7
- 3 8
- 2 9
- 5 10
- 6 12
- 4 14
- 10 15
- 8 18
- 15 19
- 15 20
- */
-

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。