程序博客网 > centos 编译安装lamp
来源:互联网 发布:centos 编译安装lamp 编辑:程序博客网 时间:2024/04/29 17:14
#include<iostream>#include<cstdio>#include<cstdlib>#include<cmath>using namespace std;int a[30010]={0};int m,n;int max1,min1,sub;int c,q;int b[30010]={0};int dep(int,int);int main (){while(cin>>m>>n){for(int i=0;i<m;i++) scanf("%d",&a[i]);if(m==1)cout<<"1"<<endl;if(m==2){if(abs(a[1]-a[0])<n)cout<<"2"<<endl;elsecout <<"1"<<endl;}if(m>2){for(int i=0;i<m-1;i++)b[i]=abs(a[i+1]-a[i]);min1=b[0];for(int i=0;i<m-1;i++)if(b[i]<min1)min1=b[i];if(min1>n)cout<<"1"<<endl;for(int i=0;i<30010;i++)b[i]=0;min1=a[0];max1=a[0];for(int i=0;i<m;i++){if(a[i]>max1)max1=a[i];if(a[i]<min1)min1=a[i];}sub=max1-min1;if(sub<n)cout<<m<<endl;else{cout<<dep(2,m)<<endl;}}}for(int i=0;i<30010;i++)a[i]=0;return 0;}int dep(int e,int d){int f=(e+d)/2;if(f==e)return f;for(int i=0;i<=m-f;i++){max1=a[i];min1=a[i];for(int j=0;j<f;j++){if(a[i+j]>max1)max1=a[i+j];if(a[i+j]<min1)min1=a[i+j];}b[i]=max1-min1;}int min1=b[0];for(int j=0;j<=m-f;j++){if(b[j]<min1)min1=b[j];}if(min1>n)return dep(e,f);elsereturn dep(f,d);}