记录编号 352552 评测结果 AAAAAAAAAA
题目名称 尼克的任务 最终得分 100
用户昵称 GravatarZwoi_只会打表抄代码的蒟蒻 是否通过 通过
代码语言 C 运行时间 0.014 s
提交时间 2016-11-17 12:18:05 内存使用 0.48 MiB
显示代码纯文本
#include <stdio.h>
#include <stdlib.h>
typedef struct tree
{
	int s,t;
}AAA;
AAA a[10010],book[10010];
int n,m,i,k[10010],max,j;
int cmp(const void *a,const void *b)
{return (*(AAA*)a).s>(*(AAA*)b).s?1:-1;}
int main()
{
	freopen("lignja.in","r",stdin);
	freopen("lignja.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(i=1;i<=m;i++)
		scanf("%d%d",&a[i].s,&a[i].t);
	qsort(a+1,m,sizeof(a[0]),cmp);
	k[n+1]=0;
	for(i=1;i<=m;i++)
	{
		book[a[i].s].s++;
		book[a[i].s].t=i;
	}
	for(i=n;i>0;i--)
	{
		if(book[i].s)
		{
			max=0;
			for(j=book[i].t;j>book[i].t-book[i].s;j--)
				if(k[a[j].s+a[j].t]>max)
					max=k[a[j].s+a[j].t];
			k[i]=max;
		}
		else
			k[i]=k[i+1]+1;			
	}
	printf("%d",k[1]);
	return 0;
}