讨论 / C语言解
BarackObama 2013-02-18 03:38:00
点我顶贴 收藏 删除
#include<stdio.h>

#include<stdlib.h>

int main()

{

long n,a[5010],f[5010],g[5010],i,j,max,min;

scanf("%d",&n);

for(i=1;i<=n;i++)scanf("%d",&a[i]);

memset(f,0,sizeof(f));

memset(g,0,sizeof(g));

g[n]=1;

f[n]=1;

for(i=n-1;i>=1;i--)

{

max=0;min=0;

for(j=i+1;j<=n;j++)

{

if((a[i]>a[j])&&(max<f[j]))max=f[j];

if((a[i]<a[j])&&(min<g[j]))min=g[j];

}

f[i]=max+1;g[i]=min+1;

}

max=0;min=0;

for(i=1;i<=n;i++)

{

if(f[i]>max)max=f[i];

if(g[i]>min)min=g[i];

}

printf("%d %d",max,min);

return 0;

}

查看更多回复
提交回复