10wa+10tle 不知道为什么? 样例都过了!
#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define fr first
#define se second
#define FAST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
using namespace std;
int a[100005],dp[100005],v[100005],ans;
bool flag;
int main(){
FAST;
int n=1;
while(cin>>a[n]){
n++;
}
n--;
dp[1]=1;
for(int i=2;i<=n;i++){
for(int j=1;j<i;j++){
if(a[j]>a[i]) dp[i]=max(dp[i],dp[j]+1);
}
}
cout<<dp[n]<<endl;
v[++ans]=a[1];
for(int i=2;i<=n;i++){
flag=1;
for(int j=1;j<=ans;j++){
if(v[j]>=a[i]){
v[j]=a[i];
flag=1;
break;
}else{
flag=0;
}
}
if(flag==0){
v[++ans]=a[i];
}
}
cout<<ans;
return 0;
}