题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805063166312448 思路:输入一个值,看当前所有轨道是否有大于前前值的,有的话替换当前轨道值,否则新增轨道
#include<bits/stdc++.h>
using namespace std;
set<int>s;
int main()
{
int n,a;
while(cin>>n)
{
for(int i=0;i<n;i++)
{
cin>>a;
if(s.empty()) s.insert(a); //如果集合为空则直接加入
else
{
if(s.lower_bound(a)!=s.end()) //如果找到了比a大的数
{
s.erase(s.lower_bound(a)); //删除比a大的数
s.insert(a); //添加
}
else s.insert(a); //否则添加
}
}
cout<<s.size()<<endl;
}
return 0;
}