比赛 平凡的题目 评测结果 RRRRRRRRRR
题目名称 平凡的数据范围 最终得分 0
用户昵称 小明 运行时间 0.002 s
代码语言 C++ 内存使用 1.69 MiB
提交时间 2015-11-03 11:31:30
显示代码纯文本
#include<stdio.h>
#include<math.h>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
int main ()
{
	freopen("bg.in","r",stdin);
	freopen("bg.out","w",stdout);
	int a,c[100000],d[100000],e[100000],f[100000],g,z=0,y=1,x=100000,ans=0,i,j,k,m,n,w=100000;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a);
		f[a]++;
	}
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&c[i],&d[i]);
		for(j=c[i];j<=d[i];j++)
			e[j]++;
		if(x>c[i])
			x=c[i];	
		if(z<d[i])
			z=d[i];
	}
	for(i=x;i<=z;i++)
		if(f[i]==0)
			e[i]=0;
	while(y!=0)
	{
		y=0;
		w=100000;
		for(i=x;i<=z;i++)
		{	
			if(e[i]!=0)
				if(w>e[i])
					w=e[i];
            if(y<e[i])
				y=e[i];
		}
		for(i=x;i<=z;i++)
			if((e[i]==w)&&(f[i]>=1))
			{
				g=f[i];
				for(j=1;j<=m;j++)
					if((c[j]<=i)&&(i<=d[j]))
					{
						for(k=c[j];k<=d[j];k++)
						{
							if(e[k]>0)
								e[k]--;
							if(e[k]==0)
								f[k]=0;
						}
					}
				ans+=min(w,g);
				f[i]=0;
			}
	}
	printf("%d",ans);
	return 0;
}