| 比赛 | 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;
}