比赛 20120417 评测结果 AWWWWWWWWT
题目名称 放牧2 最终得分 10
用户昵称 临轩听雨ゐ 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-04-17 10:11:18
显示代码纯文本
#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
using namespace std;
int cown[1000001]={0};
int crib[1000001]={0};
int main()
{
    ifstream in("graze2.in");
    ofstream out("graze2.out");
    int n,s;
	int i,j;
	int ans=0;
	in>>n>>s;
	for(i=1;i<=n;i++)
	{
		int a;
		in>>a;
		cown[a]=1;
	}
	int gap;
	gap=(s-1)/(n-1);
	for(i=1;i<=s;i+=gap)
		crib[i]=1;
	for(i=1;i<=s;i++)
	{
		if(cown[i]==1)
		{
			int min=10000001;
			for(j=1;j<=i+2*gap;j++)
			{
				if(crib[j]==1)
				{
					if(abs(j-i)<min)
					{
						min=abs(j-i);
						cown[i]=0;
						crib[j]=0;
					}
				}
			}
			ans+=min;
		}
	}
	out<<ans<<endl;
    return 0;
}