第一个和第二个只有42行的else有区别,但第一个通过了,第二个没过,不理解.
#include<stdio.h>
int main()
{
int l,m,a[100][2],i,s=0,min,t,j,k;
scanf("%d %d\n%d %d",&l,&m,&a[0][0],&a[0][1]);
for(i=1;i<m;i++)
{
scanf("%d %d",&a[i][0],&a[i][1]);
}
for(int j=0;j<m;j++)
{
min=a[j][0];
for(int i=j+1;i<m;i++)
{
if(a[i][0]<min)
{
t=min;
min=a[i][0];
a[i][0]=t;
}
}
a[j][0]=min;
}
for(int j=0;j<m;j++)
{
min=a[j][1];
for(int i=j+1;i<m;i++)
{
if(a[i][1]<min)
{
t=min;
min=a[i][1];
a[i][1]=t;
}
}
a[j][1]=min;
}
k=a[0][1]-a[0][0]+1;
for(i=1;i<m;i++)
{
if(a[i][0]>a[i-1][1])k+=a[i][1]-a[i][0]+1;
else
{
a[i][0]=a[i-1][0];
k=a[i][1]-a[i][0]+1;
}
}
s=l-k+1;
printf("%d",s);
return 0;
}
#include<stdio.h>
int main()
{
int l,m,a[100][2],i,s=0,min,t,j,k;
scanf("%d %d\n%d %d",&l,&m,&a[0][0],&a[0][1]);
for(i=1;i<m;i++)
{
scanf("%d %d",&a[i][0],&a[i][1]);
}
for(int j=0;j<m;j++)
{
min=a[j][0];
for(int i=j+1;i<m;i++)
{
if(a[i][0]<min)
{
t=min;
min=a[i][0];
a[i][0]=t;
}
}
a[j][0]=min;
}
for(int j=0;j<m;j++)
{
min=a[j][1];
for(int i=j+1;i<m;i++)
{
if(a[i][1]<min)
{
t=min;
min=a[i][1];
a[i][1]=t;
}
}
a[j][1]=min;
}
k=a[0][1]-a[0][0]+1;
for(i=1;i<m;i++)
{
if(a[i][0]>a[i-1][1])k+=a[i][1]-a[i][0]+1;
else k=a[i][1]-a[i-1][0]+1;
}
s=l-k+1;
printf("%d",s);
return 0;
}