116分求助
查看原帖
116分求助
938125
xnbcgshijie楼主2023/7/27 14:06
#include <bits/stdc++.h>
using namespace std;

int x,n,pos,pos2,a[100005],ans[100005],ans2[100005];

int main()
{
	while(cin >> x)
		a[++n] = x;
	for(int i = n;i >= 1;i--)
	{
		if(a[i] <= ans[pos])
			ans[upper_bound(ans + 1,ans + pos + 1,a[i]) - ans] = a[i];
		else
			ans[++pos] = a[i];
	}
	for(int i = 1;i <= n;i++)
	{
		if(a[i] > ans2[pos2])
			ans2[++pos2] = a[i];
		else
			ans2[lower_bound(ans2 + 1,ans2 + pos2 + 1,a[i]) - ans2] = a[i];
	}
	cout << pos << endl << pos2;
	return 0;
}
2023/7/27 14:06
加载中...