区间调度每次选最早结束的任务
可选的数量最多
#include <bits/stdc++.h>
using namespace std;
struct dis{
int s, t;
};
bool cmp(dis a, dis b)
{
return a.t < b.t;
}
int main()
{
int n, cnt = 1;
cin >> n;
vector<dis> arr(n);
for (int i = 0; i < n; ++i)scanf("%d", &arr[i].s);
for (int i = 0; i < n; ++i)scanf("%d", &arr[i].t);
sort(arr.begin(), arr.end(), cmp);
int last = arr[0].t;
for (int i = 1; i < n; ++i){
if (arr[i].s > last){
++cnt;
last = arr[i].t;
}
}
cout << cnt << endl;
return 0;
}