题目来源:《挑战程序设计竞赛》2.2
#include<iostream>
#include<algorithm>
using namespace std;
#define MAXN 10000
pair<int, int> itv[MAXN];
int n;
int solve(int *T, int *S)
{
for (int i = 0; i < n; i++)
{
itv[i].first = S[i];
itv[i].second = T[i];
}
sort(itv, itv + n);
int t = 0, ans = 0;
for (int i = 0; i < n; i++)
{
if (itv[i].second > t)
{
ans++;
t = itv[i].first;
}
}
return ans;
}
int main()
{
int T[10], S[10];
cout << "请输入工作数量" << endl;
cin >> n;
cout << "请输入工作的开始时间" << endl;
for (int i = 0; i < n; i++)
{
cin >> T[i];
}
cout << "请输入工作的结束时间" << endl;
for (int i = 0; i < n; i++)
{
cin >> S[i];
}
cout << "最多的工作数为:" << solve(T, S) << endl;
return 0;
}