记录编号 |
260741 |
评测结果 |
AAAAAAAAAAAAAAAAAAAAA |
题目名称 |
[HAOI 2014]贴海报 |
最终得分 |
100 |
用户昵称 |
竹语淡墨 |
是否通过 |
通过 |
代码语言 |
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;
}