解题思路:反正就是每加进一个数,就看看set中有没有比他大的。
#include<cstdio>
#include<cstring>
#include<set>
#include<iterator>
using namespace std;
set<int> s;
set<int>::iterator it;
int main()
{
int n,c;
// freopen("t.txt","r",stdin);
scanf("%d",&n);
s.clear();
int cnt=0;
while(n--)
{
scanf("%d",&c);
it=s.upper_bound(c);
if(s.empty()||it==s.end())
{
cnt++;
s.insert(c);
}else
{
s.erase(it);
s.insert(c);
}
}
printf("%d\n",cnt);
return 0;
}