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

不同编译器表现不同啊,GCC AC,但是C Wrong Answer,为什么啊?

Posted by jiqiusheng at 2013-09-28 22:41:06 on Problem 3670 and last updated at 2013-09-28 22:42:11
#include<stdio.h>

int N;
int A[30000];

void input()
{
	int i;
	scanf("%d",&N);
	for(i=0;i<N;i++)
		scanf("%d",&A[i]);
}

int bs1(int B[],int len,int x)
{
	int b,e,m;
	b=0; e=len;
	while(b<e)
	{
		m=(b+e)/2;
		if(B[m] > x)
			e=m;
		else
			b=m+1;
	}
	return b;
}

int LIS()
{
	int i,j;
	int len;
	int B[30000];
	B[0]=A[0]; len=1;
	for(i=1;i<N;i++)
	{
		if(A[i]>=B[len-1])
			B[len++]=A[i];
		else
		{
			j=bs1(B,len,A[i]);
			B[j]=A[i];
		}
	}
	return len;
}

void swap()
{
	int i,j,t;
	i=0; j=N-1;
	while(i<j)
	{
		t=A[i];
		A[i]=A[j];
		A[j]=t;
		i++; j--;
	}
}

void output()
{
	int l1,l2;
	l1=LIS();
	swap();
	l2=LIS();
	printf("%d\n",N-(l1 > l2 ? l1 : l2));
}

int main()
{
	input();
	output();
	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