滚动新闻

某国发展出一种导弹拦截系统有一个缺陷数量不超过100个

描述

一个国家为了防御敌人的导弹袭击前驻车雷达有用吗,开发了导弹拦截系统。但是这个导弹拦截系统有个缺陷:虽然它的第一弹可以达到任意高度,但是后面的每一个弹都不能比前一个高。一天,雷达探测到一枚来自敌国的来袭导弹。由于该系统仍处于试验阶段,只有一个系统前驻车雷达有用吗,因此可能无法拦截所有导弹。依次输入导弹飞行高度(雷达给出的高度数据为不大于30000的正整数),计算这个系统最多可以拦截多少导弹?导弹的数量不应超过100。

进入

一行中有几个整数,分别代表导弹依次飞行的高度。用空格分隔两个数字。

输出

代表系统可以拦截的最大导弹数量的数字。

#include
using namespace std;
int n=0;
int a[1001];
int b[1001];
int ans=1;
int f[1001];
int main()
{
	while(cin>>a[++n]);
	n--;
	int l=1;
	b[1]=1e9;
	for(int i=1;i<=n;i++)
	{
		for(int j=l;j>0;j--)
		{
			if(b[j]>=a[i])
			{
				b[j+1]=a[i];
				l=max(l,j+1);
				break;
			}
		}
	}
	cout<

输入样本 1

389 207 155 300 299 170 158 65

样本输出 1

6