得分: 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;
}