讨论 / 第六个点怎么过不了????
tianhai 2009-08-20 23:02:00
点我顶贴 收藏 删除
怎么回事?谁有第六个的测试数据?

得分: 90分

提交日期: 2009-8-21 13:29:00

有效耗时: 439毫秒

测试结果1: 通过本测试点|有效耗时63ms

测试结果2: 通过本测试点|有效耗时47ms

测试结果3: 通过本测试点|有效耗时47ms

测试结果4: 通过本测试点|有效耗时47ms

测试结果5: 通过本测试点|有效耗时47ms

测试结果6: 测试结果错误.错误结果为:0

正确结果应为:197

测试结果7: 通过本测试点|有效耗时47ms

测试结果8: 通过本测试点|有效耗时47ms

测试结果9: 通过本测试点|有效耗时47ms

测试结果10: 通过本测试点|有效耗时47ms

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

int main()

{

int n,*f;

scanf("%d\n",&n);

char s[501];

f=(int *)malloc(sizeof(int )*(n+1));

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

{

int r,p=0;

f[i]=0;

gets(s);

r=strlen(s);

if(r>3&&r<7)

{

if(s[0]==’j’&&s[1]==’m’&&s[2]==’p’&&s[3]==’ ’)

{

int la=strlen(s),t=1;

for(int k=la-1;k>=4;k--)

{

if(s[k]<’0’||s[k]>’9’)

p=1;

f[i]+=(s[k]-’0’)*t;

t*=10;

}

}

}

if(p==1)

f[i]=0;

}

int k=1,sum=0;

while(k<=n)

{

if(f[k]==-1)

{

printf("0");

break;

}

sum++;

if(f[k]==0)

{

f[k]=-1;

k++;

}

else if(f[k]>0)

{

int t=k;

k=f[k];

f[t]=-1;

}

if(k==n)

{

if(f[k]==0)

printf("%d",sum+1);

}

}

getchar();

return 0;

}

查看更多回复
提交回复