前面一半测试点AC后面全TLE……
#include<bits/stdc++.h>
#pragma -O3
using namespace std;
int main()
{
string t;
getline(cin,t);
int w=1,t2=1;
for(int i=0;i<t.size();i++)
{
if(t[i]==' ')
w++;
}
int a[w+1];
fill(a+1,a+w+1,0);
for(int i=0;i<t.size();i++)
{
if(t[i]==' ')
{
t2++;
continue;
}
a[t2]=a[t2]*10+t[i]-'0';
}
int c[w+1],f[w+1],in;
c[0]=100001;
t2=1;
for(int i=1;i<=w;i++)
{
f[i]=1;
for(int j=i-1;j>=1;j--)
{
if(a[j]>=a[i])f[i]=max(f[i],f[j]+1);
}
t2=max(t2,f[i]);
}
printf("%d\n",t2);
t2=0;
for(int i=1;i<=w;i++)
{
in=0;
for(int j=1;j<=t2;j++)
{
if(a[i]<=c[j]&&c[j]<=c[in])in=j;
}
if(in==0)
{
c[++t2]=a[i];
continue;
}
c[in]=a[i];
}
printf("%d",t2);
return 0;
}
求助