比赛 20120417 评测结果 WWWWWWWWWW
题目名称 放牧2 最终得分 0
用户昵称 Cloud 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-04-17 10:54:02
显示代码纯文本
#include<fstream>
#include<set>
using namespace std;
int main(void)
{
	ifstream fin("graze2.in");
	ofstream fout("graze2.out");
	int n,m,num=0;
	set<int> a;
	set<int>::iterator p,q,o;
	int i,k,j;
	fin>>n>>m;
	k=(m-1)/(n-1);
	for(i=0;i<n;i++)
	{
		fin>>j;
		a.insert(j);
	}
	p=a.begin();
	for(i=0;i<n-1;i++)
	{
		q=p;
		p++;
		if(*p-*q==1)
			for(j=1;j<n;j++)
			{
				o=a.find(*p+j);
				if(o==a.end())
				{
					a.insert(*p+j);
					a.erase(p);
					num+=j;
					break;
				}
			}
		if(*p-*q>k)
		{
			num++;
			a.erase(p);
			a.insert(*p-1);
		}
	}
	fout<<num;
	fin.close();
	fout.close();
	return 0;
}