- 有n项工作,每项工作分别在
si
时间开始,
ti
时间结束。对于每项工作你选择参与与否,如果选择 了参与,那么自始至终就必须全程参与。参与工作的时间段不可以重复。(开始的瞬间和结束重复也不可以)
尽可能多的参与工作,可以参与多少。
#include<iostream>
#include<algorithm>
using namespace std;
const int MAX_N=100000;
int N;
int S[MAX_N],T[MAX_N];
pair<int,int> itv[MAX_N];
bool cmp(const pair<int,int> &a,const pair<int,int> &b)
{ return a.first < b.first; }
void solve()
{
for(int i=0;i<N;i++){
itv[i].first=T[i];
itv[i].second=S[i];
}
std::sort(itv,itv+N,cmp);
int ans=0,t=0;
for(int i=0;i<N;i++){
if(t<itv[i].second){
ans++;
t=itv[i].first;
}
}
cout<<ans<<endl;
}
int main(int ac,char* av[])
{
while(cin>>N){
for(int i=0;i<N;i++){
cout<<"输入"<<i;
cin>>S[i];
cin>>T[i];
}
solve();
}
return 0;
}