Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

题目中的测试数据和几位大牛提供的需要注意的数据都过了,但还是WA! C语言新手向各位大牛求教

Posted by xfjianchi at 2011-07-21 15:57:10 on Problem 1836
#include<stdio.h>
int main()
{
    int n,i,j,p,q,x,y,b[1010];
    float a[1010];
    scanf("%d",&n);
    p=0;
    for(i=1;i<=n;i++)
    {
        scanf("%f",&a[i]);
        b[i]=1;
        if(p<a[i])
        {
            p=a[i];   //求出最高者地号码p
            q=i;
        }
    }
    for(i=1;i<=p-1;i++)
	{
		for(j=1;j<i;j++)
		{
			if(a[i]>a[j]&&b[j]+1>b[i])
			{
				b[i]=b[j]+1;
			}
        }
	}
	x=0;
	for(i=1;i<=n;i++)
	{
		if(x<b[i])
		{
			x=b[i];
		}
	}                           //对1到p-1号求出最长上升子列的长度x
	for(i=p;i<=n;i++)
	{
		for(j=p;j<i;j++)
		{
			if(a[i]<a[j]&&b[j]+1>=b[i])
			{
				b[i]=b[j]+1;
			}
        }
	}
	y=0;
	for(i=1;i<=n;i++)
	{
		if(y<b[i])
		{
			y=b[i];            //对p到n号求最长下降子列的长度y
		}
	}
	printf("%d",n-x-y);     // n-x-y就是要出去的人
	
    return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator