#include <iostream>
#include<algorithm>
using namespace std;
int l,m;
struct ty
{
int pos,num;
}a[2000005];跟校门外的树差不多,离散化用的数组要大一些
bool comp(ty a,ty b)
{
return a.pos<b.pos;
}
int main()
{
cin>>l>>m;
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
a[i].pos=x;
a[i].num=1;
a[i+m].pos=y+1;
a[i+m].num=-1;
}
sort(a+1,a+2*m+1,comp);
int b=0; int sum=0;
for(int i=1;i<=2*m;i++)
{
b+=a[i].num;
if(b==1&&a[i].num==1)
{
sum+=(a[i].pos-a[i-1].pos);
}
}
sum+=(l-a[2*m].pos+1);
cout<<sum;
return 0;
#include<algorithm>
using namespace std;
int l,m;
struct ty
{
int pos,num;
}a[2000005];跟校门外的树差不多,离散化用的数组要大一些
bool comp(ty a,ty b)
{
return a.pos<b.pos;
}
int main()
{
cin>>l>>m;
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
a[i].pos=x;
a[i].num=1;
a[i+m].pos=y+1;
a[i+m].num=-1;
}
sort(a+1,a+2*m+1,comp);
int b=0; int sum=0;
for(int i=1;i<=2*m;i++)
{
b+=a[i].num;
if(b==1&&a[i].num==1)
{
sum+=(a[i].pos-a[i-1].pos);
}
}
sum+=(l-a[2*m].pos+1);
cout<<sum;
return 0;
}