90分,第一个数据出错了,求助

P1047 [NOIP2005 普及组] 校门外的树

GX003 @ 2022-11-18 20:47:04

#include <stdio.h>
int main()
{
    int a[10000];
    int c,b,n=0,m,l,v,i;
    scanf("%d %d",&l,&m);
    for (i=0;i<=l;i++)
        a[i]=1;
    for (i=0; i<m;i++)
    {
        scanf("%d %d",&c,&b);
        for (v=c-1;v<b;v++)
            a[v]=0;
    }
    for (i=0;i<=l;i++)
        n=n+a[i];
    printf("%d",n);
return 0;
}

还请能帮我看看,感谢


by wu_yan @ 2022-11-18 21:23:40

第12行 for (v=c-1;v<b;v++)

区间应为 [u,v],而非 [u-1,v-1]

所以应改为 for (v=c;v<=b;v++)


by GX003 @ 2022-11-20 14:36:59

@wu_yan 感谢!我懂了.


|