为什么我一个O(nlogn)的算法挂成了O(n2)??
#include <iostream>
#define Max (int)(5*1e4)+25
using namespace std;
int a[Max];
int d[Max];
int p[Max];
int main(){
ios::sync_with_stdio(0);
int len=0;
while(cin>>a[len]){
len++;
}
d[len-1]=1;
p[len-1]=1;
int mx=0,mi=0;
for(int i=len-2;i>=0;i--){
int maxx=1,minn=1;
for(int j=i+1;j<len;j++){
if(a[i]>=a[j]&&d[j]+1>maxx){
maxx=d[j]+1;
}
if(a[i]<a[j]&&p[j]+1>minn){
minn=p[j]+1;
}
}
d[i]=maxx;
p[i]=minn;
if(maxx>mx)mx=maxx;
if(minn>mi)mi=minn;
}
cout<<mx<<endl;
cout<<mi<<endl;
return 0;
}
不是输入输出的问题,我开流加速了没用,吸氧也没用