ZOJ-3787

来源:互联网 发布:json读取数据库 编辑:程序博客网 时间:2024/06/06 00:04

简单模拟题,照着题目意思做就行了

#include<stdio.h>#include<stdlib.h>#include<string.h>struct Student{int index;int time;};static int cmp(const void *p1, const void *p2){struct Student *s1 = (struct Student*) p1;struct Student *s2 = (struct Student*) p2;return s1->time - s2->time;}int main(){int t, n, l, flag[20000];struct Student *array = malloc(20000 * sizeof(struct Student));scanf("%d", &t);while (t--){memset(flag, 0, sizeof(flag));scanf("%d %d", &n, &l);int i, hh, mm, ss;for (i = 0; i < n; i++){scanf("%d:%d:%d", &hh, &mm, &ss);array[i].index = i;array[i].time = hh * 3600 + mm * 60 + ss;}qsort(array, n, sizeof(struct Student), cmp);int prev = array[0].time, total = 1, first = 1;flag[array[0].index] = 1;for (i = 1; i < n; i++)if (array[i].time >= prev + l){prev = array[i].time;flag[array[i].index] = 1;total++;}printf("%d\n", total);for (i = 0; i < n; i++)if (flag[i]){if (first){printf("%d", i + 1);first = 0;}elseprintf(" %d", i + 1);}putchar('\n');}free(array);return 0;}


0 0