求助,不知道为什么92分
查看原帖
求助,不知道为什么92分
636442
yangyang1000楼主2022/12/29 19:38
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;

int n=1,a[100005],b[100005],len;

int main()
{
	while(cin >> a[n])
	{
		n++;
	}
   n--;

	reverse(a+1,a+n+1);
	len = 0;
	b[1] = a[1];
	for(int i=1;i<=n;i++)
	{
		if(a[i] >= b[len]) b[++len] = a[i];
		else
		{
			int m = upper_bound(b+1,b+len+1,a[i])-b;
			b[m] = a[i];
		}
	}
	cout << len << endl;  
	
    reverse(a+1,a+n+1);
	len = 0;
	b[1] = a[1];
	for(int i=1;i<=n;i++)
	{
		if(a[i] > b[len]) b[++len] = a[i];
		else
		{
			int m = upper_bound(b+1,b+len+1,a[i])-b;
			b[m] = a[i];
		}
	}
	cout << len << endl; 
    return 0;
}

不知道那个地方脑残了,应该是低级错误,但我太蒟,检查不出来。

2022/12/29 19:38
加载中...