| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
求高手帮忙,不知为何 总是runtime error!感激不尽!!!!(附程序)#include<stdio.h>
#include<string.h>
char in[1000][100];
int x,j;
int number()
{
int n=0,t=1;
if(in[j][x]=='-')
{
t=0;
x++;
}
while (in[j][x]<='9'&&in[j][x]>='0')
n=n*10+in[j][x++]-'0';
if (t==0)
n=-n;
return n;
}
int check()
{
int n,left=0,sum=0,no[1000][3],i=0,s1,s2,s3;
char c;
x=0;
n=number();
j++;
do
{
x=0;
while((c=in[j][x++])!='\0')
{
if(c>='0'&&c<='9'||c=='-')
{
x--;
no[i][0]=number();
no[i][1]=-1;
no[i][2]=-1;
sum+=no[i][0];
if(i>0)
if(no[i-1][1]<0)
no[i-1][1]=1;
else no[i-1][2]=1;
i++;
s1=s2;
s2=s3;
s3=0;
}
else
if(c=='(')
{
left++;
s1=s2;
s2=s3;
s3=1;
}
else
if(c==')')
{
if(s3==1)
if(no[i-1][1]==-1)
no[i-1][1]=0;
else
no[i-1][2]=0;
left--;
if(s1==1&&s2==-1&&s3==1)
if(sum==n)
{
while(left!=0)
{
c=in[j][x++];
if(c=='(')
left++;
else
if(c==')')
left--;
else
if(c=='\0'&&left!=0)
{
j++;
x=0;
}
}
j++;
return 1;
}
if(no[i-1][1]==0&&no[i-1][2]==0)
{
sum-=no[i-1][0];
i--;
if(no[i-1][1]==1)
no[i-1][1]=0;
else
no[i-1][2]=0;
}
s1=s2;
s2=s3;
s3=-1;
}
}
j++;
}
while(left!=0);
return 0;
}
main()
{
int i=0,t,out[1000],z;
z=scanf("%s",in[i++]);
while(z>0)
z=scanf("%s",in[i++]);
for(t=0;j<i-1;)
out[t++]=check();
for(i=0;i<t;i++)
if(out[i]==1)
printf("yes\n");
else
printf("no\n");
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator