#include<bits/stdc++.h>
using namespace std;
int a[1000];//n<=1000
int h[1000];//n<=1000,最坏情况与导弹数量一致
int main()
{
int n,s=1;//先定义非特殊情况下,至少需要用一个系统
cin>>n;//导弹数量
for(int i=1; i<=n; i++) cin>>a[i];
if(n<=1)
{
cout<<n;
return 0;
}
else
{
h[s]=a[1];//定义第1个拦截系统的初始值为第1枚导弹高度
//为了让第1个拦截系统就能拦到第1枚导弹
for(int i=1; i<=n; i++)//导弹
{
int f=0;
sort(h+1,h+s+1);//从小到大排序系统高度
for(int j=1; j<=s; j++)//导弹拦截系统
{
if(h[j]>=a[i])//如果能够拦到导弹
{
h[j]=a[i];
f=1;
break;
}
//cout<<i<<"导弹: "<<a[i]<<'\n';
//cout<<j<<"防御: "<<h[j]<<'\n';
}
//cout<<'\n';
if(f==0)//未能拦截到导弹
{
s++;//总量增加1
h[s]=a[i];//新增系统可拦截高度设为导弹i的高度
}
}
}
cout<<s;//输出最少装备的系统数量
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int a[1000];//n<=1000
int h[1000];//n<=1000,最坏情况与导弹数量一致
int main()
{
int n,s=1;//先定义非特殊情况下,至少需要用一个系统
cin>>n;//导弹数量
for(int i=1; i<=n; i++) cin>>a[i];
if(n<=1)
{
cout<<n;
return 0;
}
else
{
h[s]=a[1];//定义第1个拦截系统的初始值为第1枚导弹高度
//为了让第1个拦截系统就能拦到第1枚导弹
for(int i=1; i<=n; i++)//导弹
{
int f=0;
sort(h+1,h+s+1);//从小到大排序系统高度
for(int j=1; j<=s; j++)//导弹拦截系统
{
if(h[j]>=a[i])//如果能够拦到导弹
{
h[j]=a[i];
f=1;
break;
}
//cout<<i<<"导弹: "<<a[i]<<'\n';
//cout<<j<<"防御: "<<h[j]<<'\n';
}
//cout<<'\n';
if(f==0)//未能拦截到导弹
{
s++;//总量增加1
h[s]=a[i];//新增系统可拦截高度设为导弹i的高度
}
}
}
cout<<s;//输出最少装备的系统数量
return 0;
}