找不出问题在哪里,能看吗

题目:
某校大门外长度为 ll 的马路上有一排树,每两棵相邻的树之间的间隔都是 11 米。我们可以把马路看成一个数轴,马路的一端在数轴 00 的位置,另一端在 ll 的位置;数轴上的每个整数点,即 0,1,2,\dots,l0,1,2,…,l,都种有一棵树。
由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

我的代码:
#include<stdio.h>
int main()
{
//一个数列用来记录左边,一个数列用来记录右边,一个数表示这个区间有没有弄过,一个数列用来表示最终的数列
int n,m,i,j,min,max,t;
scanf("%d %d",&n,&m);
int a[n];
int b[m][2];
int c[m][2];
for(i=0;i<n+1;i++) //给n初始化
a[i]=i;
for(i=0;i<m;i++)
scanf("%d %d",&b[i][0],&b[i][1]); //放区间

for(i=0,t=0;i<m;i++)  // 合并区间    
{
if(b[i][0]!=-1)
    {
    min=b[i][0];
    max=b[i][1];
    for(j=i+1;j<m;j++)
    {
        if(max>=b[j][0]&&min<b[j][1]) //表示能构成一个区间
        {
            if(b[j][0]<min) min=b[j][0];
            if(b[j][1]>max) max=b[j][1];
            b[j][0]=-1;        
        }
    }
    c[t][0]=min;
    c[t][1]=max;
    t++;
    }
else if(b[i][0]==-1)continue;    
}
int sum;
for(i=0,sum=0;i<t;i++)
    sum=sum+(c[i][1]-c[i][0]+1);
    printf("%d",n+1-sum);
    return 0;

}
我想把小区间合并成大区间,但是错误了