0分求助

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

Sternstunde__ @ 2022-11-01 16:27:50

按照示例输入的数据跑出来是对的,自己试的数据跑出来也是对的,但是全是WA不知道为什么。 代码如下:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int l,i,j,m;//i和j是用来循环计数的 
    cin>>l>>m;
    int a[l];
    int n=0;
    for(i=0;i<=l;i++)
    a[i]=1;//每棵树开始赋值1表示它存在 
    int c,b;
    for(i=0;i<m;i++)
    {
        cin>>c>>b;//c,b是区域的坐标 
        if(c>b) break;//保证坐标的正确性 
        for(j=0;j<=l;j++)
        {
            if(j>=c&&j<=b)
            a[j]=0;//在区域内的树赋值零表示把它去掉 
        }

    }
    for(j=0;j<=l;j++)
    n=n+a[j];//把所有存在的树累加起来得到剩余数目总量 
    cout<<n<<endl;
    return 0;
}

by 王洪钰yyds @ 2022-11-01 16:35:34

下标从0开始,a数组应该多开一点。不然会越界。


by lzx0 @ 2022-11-06 11:57:35

数组小了·····


|