比赛 平凡的题目 评测结果 AATTTTTTTA
题目名称 平凡的题面 最终得分 30
用户昵称 坐看klzwii虐场 运行时间 7.004 s
代码语言 C++ 内存使用 2.20 MiB
提交时间 2015-11-03 11:03:12
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; 
int n,m;
int sum=0,maxn=-1;
int len[100010]={0};
struct fw{
	int left,right;
}lr[100010];
int visp[100010]={0};
int visl[100010]={0};
void dfs(int k)
{
	int ok=1;
	if(k>=n+1) {if(sum>maxn) {maxn=sum;}return ;}
	for(int i=1;i<=m;i++)
	{
		if(len[k]>=lr[i].left&&len[k]<=lr[i].right&&!visl[i]) {ok=0;visl[i]=1;sum++;dfs(k+1);sum--;visl[i]=0;}
	}
	if(ok)
	dfs(k+1);
}
int main()
{
	freopen("bg.in","r",stdin);
	freopen("bg.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	scanf("%d",&len[i]);
	for(int i=1;i<=m;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		lr[i].left=x;lr[i].right=y;	
	}
	sort(len,len+n);
	dfs(1);
	printf("%d",maxn);
	return 0;
}