【牛客】简单排序 (STL)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CSDN___CSDN/article/details/88620362

https://ac.nowcoder.com/acm/contest/547/F

首先将一系列数存入到数组中,然后利用set的upper_bound返回第一个大于他的函数,如果存在这样的,就把大于他的那个数删除,加入这个新的数,否则就表示序列中没有大于他的数,把他加入set中

#include <iostream>
#include <set>
 
using namespace std;

const int maxn = 100000+5;

int a[maxn];

int main ()
{
	int n,i;
	cin >> n;
	set<int> s;
	set<int>::iterator it;
	for(i=0;i<n;i++)
		cin >> a[i];
	for(i=0;i<n;i++)
	{
		if(s.upper_bound(a[i])!=s.end())
		{
			it=s.upper_bound(a[i]);
			s.erase(it);
			s.insert(a[i]); 
		} 
		else
		{
			s.insert(a[i]);
		}
	}
	cout << s.size() << endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/CSDN___CSDN/article/details/88620362
今日推荐