(已经AC了)为什么输入5,2,1,3,2,4;输出的是2?不该是1吗?

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

```c #include<bits/stdc++.h> using namespace std; int main(){ int n,m,ans=0; int x,y; cin>>n>>m; int a[n+1]; for(int i=0;i<n+1;i++){ a[i]=0; } for(int i=1;i<=m;i++){ cin>>x>>y; for(int j=x;j<=y;j++){ // cout<<j<<endl; a[j]=1; } } for(int i=0;i<=n;i++){ if(a[i]==0){ //cout<<"x"<<i<<"x"<<endl; ans++; }else{ //cout<<"0"; } } cout<<ans; return 0; } ```
by gordon321 @ 2023-06-09 14:47:46


@[gordon321](/user/987567) 首先,a[n+1]是什么鬼,
by Ferdina_zcjb @ 2023-06-09 14:51:08


@[gordon321](/user/987567) 不能这样定义数组,a[]里面只能是常数
by Ferdina_zcjb @ 2023-06-09 14:51:48


数组从0开始,树从1开始所以末端不是要加1吗
by gordon321 @ 2023-06-09 15:00:05


@[gordon321](/user/987567) 或许,你理解就错了,题面说0~l,所以一共l+1个树,你给的数据是0~5中已有1~4,自然是0和5两个(代码没问题)
by Ferdina_zcjb @ 2023-06-09 15:01:45


@[gordon321](/user/987567) a[变量]X a[常量]√
by Ferdina_zcjb @ 2023-06-09 15:03:11


谢谢谢谢谢谢
by gordon321 @ 2023-06-09 15:04:48


|