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 请各路大侠帮忙看下啊

Posted by huzuosheng at 2007-07-30 12:07:27 on Problem 2955
#include <stdio.h>
#include <string.h>

char seq[100];
int pre[100];
int max[100];

int main()
{
	int i,j,k,l,b;
    #ifndef ONLINE_JUDGE
    freopen ("2955.txt","r",stdin);
    #endif

	while(scanf("%s",seq)!=EOF&&seq[0]!='e')
	{
		memset(pre,-1,sizeof(pre));
		memset(max,0,sizeof(max));
		l=strlen(seq);
		for(i=0;i<l;i++)
		{
			if(seq[i]=='('||seq[i]=='[') 
			{
				max[i]=1;
				pre[i]=i;
				for(j=i-1;j>=0;j--)
				{
					if(seq[j]==')'||seq[j]==']')
					{
						max[i]=max[j]+1;
						pre[i]=pre[j];
						break;
					}
				}
			}
			else
			{
				for(j=i-1;j>=0;j--)
				{
					b=0;
					if(seq[j]==seq[i]-1||seq[j]==seq[i]-2)
					{
						if(max[i]<2)
						{
							max[i]=max[j]+1;
					    	pre[i]=j;
						}						
						for(k=i-1;k>j;k--)
						{
							if(pre[k]>j&&(seq[k]==')'||seq[k]==']'))
							{
								b+=max[k]-max[pre[k]]+1;
								k=pre[k];
							}
						}
						if(b+max[j]+1>max[i])  
						{
							max[i]=b+max[j]+1;
							pre[i]=j;
						}
					}
				}
			}			
		}
		b=0;
		for(i=0;i<l;i++)
			if(seq[i]==')'||seq[i]==']')
				if(b<max[i])   b=max[i];
		printf("%d\n",b);                               
	}
	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