求助,第一个过不了

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

zzz_zzz2223 @ 2023-11-30 20:36:16

#include<stdio.h>
int main(){
    int X[100],Y[100];
    int l,m;
    int A[10000];
    int i,j,sum;

    scanf("%d%d",&l,&m);

    for(i=1;i<=m;i++){
        scanf("%d",&X[i]);
        scanf("%d",&Y[i]);
    }

    for(j=1;j<=l+1;j++){
        A[j]=1;
    }

    for(int a=1;a<=l;a++){
        for(int b=1;b<=m;b++){
            if(a>=X[b]&&a<=Y[b]){
                A[a]=0;
            }
        }
    }

    sum=0;
    for(int c=1;c<=l+1;c++){
        sum=sum+A[c];
    }

    printf("%d",sum);

    return 0;
}

by zengyijian @ 2023-12-09 20:06:35

我这么写,你参考一下:

#include<iostream>
using namespace std;
bool a[10005];
int main() {
    int l,m;
    cin>>l>>m;
    for(int i=0;i<=l;i++){
        a[i]=1;
    }
    for(int i=1;i<=m;i++){
        int b,c;
        cin>>b>>c;
        for(int j=b;j<=c;j++){
            a[j]=0;
        }
    }
    int cnt=0;
    for(int i=0;i<=l;i++){
        if(a[i]==1){
            cnt++;
        }
    }
    cout<<cnt;
     return 0;
}

|