#include<bits/stdc++.h>
#define maxn 1010
using namespace std;
int high[maxn],f[maxn],d[maxn];
int ans=0;
int main()
{
int k=1;
while(cin>>high[k])
k++;
for(int i=1;i<k;i++)
{
for(int j=1;j<i;j++)
if(high[j]>=high[i])
f[i]=max(f[i],f[j]);
f[i]++;
}
for(int i=1;i<k;i++)
ans=max(ans,f[i]);
int ans1=0;
for(int i=1;i<k;i++)
{
bool fl=0;
int wh=0,nh=2147483647;
for(int j=1;j<=ans1;j++)
if(d[j]>=high[i]&&d[j]<nh)
{
nh=d[j];
wh=j;
}
if(wh)d[wh]=high[i];
else d[++ans1]=high[i];
}
cout<<ans<<endl<<ans1;
return 0;
}
为什么,我感觉时间不会超,请大佬帮忙!