怒发冲冠,凭栏处,潇潇雨歇。
抬望眼,仰天WA,壮怀激烈。
#include<bits/stdc++.h>
using namespace std;
int n,a[100005],f[100005],m;
int main()
{
cin.tie(0)->sync_with_stdio(0);
while(cin>>a[++n]);
n--;
f[1]=a[1];m=1;
for(int i=2;i<=n;i++)
{
int x=upper_bound(f+1,f+1+m,a[i],greater<int>())-f;
if(x>=m)
{
if(a[i]<f[m])m++;
f[m]=a[i];
}
else f[x]=a[i];
}
cout<<m<<endl;
memset(f,0,sizeof(f));
f[1]=a[1];m=1;
for(int i=2;i<=n;i++)
{
int x=a[i],l=0,r=m+1;
while(l+1<r)
{
int mid=l+(r-l)/2;
if(f[mid]<=x)l=mid;
else r=mid;
}
if(r>m)f[++m]=x;
else f[r]=x;
}
cout<<m;
return 0;
}