ZOJ3197

#include 
#include 
#include 

typedef struct node{
	int a;
	int b;
}node;
node page[5000];
int count;

int cmp(const void *x, const void *y){
	node *_x = (node *)x;
	node *_y = (node *)y;
	return _x->a - _y->a;
}

void printC(int t){
	int n, i;
	while(t--){
		scanf("%d", &n);
		for(i = 0; i < n; ++i)
			scanf("%d%d", &page[i].a, &page[i].b);
		count = 0;
		qsort(page, n, sizeof(node), cmp);
		int f = 0, i = 1, s = 1;
		if(page[f].b >= n){ printf("1\n"); continue;}
		while(page[f].b < n && i < n){
			while(page[f].b < n && i < n && page[i].a <= s){
				if(page[i].b > page[f].b)	f = i;
				++i;
			}
			s = page[f].b + 1;
			++count;
		}
		if(page[f].b >= n) printf("%d\n", count);
	}
}

int main(){
	int t;
	scanf("%d", &t);
	printC(t);
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章