题目:http://www.wikioi.com/problem/1044/
int v[21],f[21];
int ans;
int main()
{
int n=0,x;
while(scanf("%d",&x)==1) v[++n]=x;
/*///////////////////////////////////////////////////
int n=8;
for(int i=1;i<9;++i) cin>>v[i];
*////////////////////////////////////////////////////
///f[i] 截止至第i个 最多能拦截的导弹数目
for(int i=0;i<=n;++i) f[i]=1;
for(int i=1;i<=n;++i)
for(int j=1;j<i;++j)
if(v[j]>v[i]&&f[i]<f[j]+1) //第j个加入当前能否拦截更多
f[i]=f[j]+1;
ans=1;
for(int i=1;i<=n;++i)
if(f[i]>ans) ans=f[i];
cout<<ans<<endl;
/////////////////////////////////////////////////
///////////////////////////////////////////////////
//f[i] 截止至第i个至少需要的系统数目
for(int i=0;i<=n;++i) f[i]=1;
for(int i=1;i<=n;++i)
for(int j=1;j<i;++j)
if(v[j]<v[i]&&f[i]<f[j]+1) //第j个加入当前能否拦截更多
f[i]=f[j]+1;
ans=1;
for(int i=1;i<=n;++i)
if(f[i]>ans) ans=f[i];
cout<<ans<<endl;
///////////////////////////////////////////////////
return 0;
}