#include <stdio.h>
#include <stdlib.h>
#define MAX_ERPORTS 100000
int numOfReports;
typedef struct Report{
int startTime;
int endTime;
}Report;
Report ReportArray[MAX_ERPORTS + 1];
int compare(Report one, Report another){
if (one.endTime == another.endTime)
return one.startTime - another.startTime;
else
return one.endTime - another.endTime;
}
int cmp(const void *a, const void *b){
return compare(*(Report *)a, *(Report *)b);
}
int main(){
scanf("%d", &numOfReports);
int report;
for (report = 1; report <= numOfReports; report++)
scanf("%d%d", &ReportArray[report].startTime, &ReportArray[report].endTime);
//自己写的快排居然过不了???
qsort(&ReportArray[1], numOfReports, sizeof(ReportArray[0]), cmp);
int preEndTime = ReportArray[1].endTime;
int result = 1;
for (report = 2; report <= numOfReports; report++){
if (ReportArray[report].startTime >= preEndTime + 1){
result++;
preEndTime = ReportArray[report].endTime;
}
}
printf("%d\n", result);
return 0;
}
URAL 1203 Scientific Conference (贪心)
最新推荐文章于 2021-02-23 23:01:44 发布