记录编号 260741 评测结果 AAAAAAAAAAAAAAAAAAAAA
题目名称 [HAOI 2014]贴海报 最终得分 100
用户昵称 Gravatar竹语淡墨 是否通过 通过
代码语言 C++ 运行时间 0.019 s
提交时间 2016-05-14 10:52:16 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>

using namespace std;

void Read();
void Up(int,int,int);

int i;
int length;
int n;
int l[1001];
int r[1001];
int ans;
bool flag[1001];
int output=0;

int main()
{
	freopen("ha14d.in","r",stdin);
	freopen("ha14d.out","w",stdout);
	
	memset(flag,false,sizeof(flag));
	memset(l,0,sizeof(l));
	memset(r,0,sizeof(r));
	
	Read();
	for(i=1;i<n;i++)
	{
		Up(i,l[i],r[i]);
	}

	for(int j=1;j<=n;j++)
	{
		if(flag[j])
		{
			output++;
		}
	}
	
	printf("%d",output);
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}

void Read()
{
	scanf("%d%d",&length,&n);
	flag[n]=true;
	for(i=1;i<=n;i++)
	{
		scanf("%d%d",&l[i],&r[i]);
	}
}

void Up(int a,int la,int ra)
{
	int j=a+1;
	while(j<=n&&(l[j]>ra||la>r[j]))
	{
		j++;
	}
	if(j>n||flag[i])
	{
		flag[i]=true;
		return;
	}
	if(r[j]<ra)
	{//right
		Up(j,r[j]+1,ra);
	}
	if(la<l[j])
	{//left
		Up(j,la,l[j]-1);
	}
	return;
}