#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
#define MAXN 1000005
#define MAXM 100005
struct Op
{
int l,r;
};
int num[MAXN];
int next[MAXN];//next[i]=j;表示第i位之后的 第一个0出现在j这个位置上;
Op op[MAXM];
int n,m;
int main()
{
//freopen("in.txt","r",stdin);
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(num,0,sizeof(num));
//cout<<"n="<<n<<"m="<<m<<endl;
for(int i=1;i<=n;i++)
{
next[i] = i+1;
}
for(int i=1;i<=m;i++)
{
scanf("%d%d",&op[i].l,&op[i].r);
}
for(int i=m;i>=1;i--)
{
for(int j = op[i].l;j<=op[i].r; )
{
//cout<<"main"<<endl;
if(num[j] == 0)
{
num[j] = i;
}
int temp = next[j];
next[j] = next[op[i].r];
j = temp;
}
/*
for(int i=1;i<=n;i++)
{
printf("%d ",num[i]);
}
printf("\n");
*/
}
int ans = 0,cnt=1;
for(int i=2;i<=n;i++)
{
if(num[i]==num[i-1]&&num[i]!=0)
{
cnt ++;
}
else
{
if(ans < cnt)
{
ans = cnt ;
}
cnt = 1;
}
}
if(ans < cnt)
{
ans = cnt;
}
printf("%d\n",ans);
}
return 0;
}
/**************************************************************
Problem: 1496
User: cust123
Language: C++
Result: Accepted
Time:380 ms
Memory:10112 kb
****************************************************************/
题目1496:数列区间
最新推荐文章于 2021-05-31 21:26:17 发布