範例程式碼 uva12694

//uva12694
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <vector>

using namespace std;

bool cmp(pair<int,int> A, pair<int,int> B) {
	return (A.second == B.second) ? (A.first < B.first) : (A.second < B.second);
}

int main(void) {
	vector<pair<int,int>> meeting;
	int T, T_S, T_E, count, start;
	scanf("%d", &T);
	
	for(int i = 0; i < T; i++) {
		count = 0;
		start = 0;

		meeting.clear();

		while(scanf("%d %d", &T_S, &T_E) && T_S + T_E) {
			meeting.push_back(make_pair(T_S, T_E));
		}
		sort(meeting.begin(), meeting.end(), cmp);

		for(int j = 0; j < meeting.size(); j++)
		{
			if(start <= meeting[j].first)
			{
				count++;
				start = meeting[j].second;
			}
		}
		printf("%d\n", count);
	}
}