您的位置:首页 > 编程语言 > Go语言

ZOJ 3197 Google Book

2015-10-08 16:56 351 查看
#include <stdio.h>
#include <stdlib.h>
#define MAX_PAGES 5000
typedef struct Query{
int from;
int to;
}Query;
Query QueryArray[MAX_PAGES + 1];

int cmp(const void *a, const void *b){
return ((Query *)a)->from - ((Query *)b)->from;
}

int main(){

int testCases;
scanf("%d", &testCases);
while (testCases--){
int numOfPages, numOfQueries;
scanf("%d", &numOfPages);
numOfQueries = numOfPages;

int query;
for(query = 1; query <= numOfQueries; query++)
scanf("%d%d", &QueryArray[query].from, &QueryArray[query].to);

qsort(&QueryArray[1], numOfQueries, sizeof(QueryArray[0]), cmp);

int from = 1;
int to = numOfPages;
query = 1;
int result = 0;
while (query <= numOfQueries){
int maxTo = -1;
while (query <= numOfQueries && QueryArray[query].from <= from){
if (QueryArray[query].to > maxTo)
maxTo = QueryArray[query].to;
query++;
}
result++;
if (maxTo >= numOfPages)
break;
from = maxTo + 1;

}
printf("%d\n", result);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息