比赛 20091026 评测结果 WEWWWWWWWA
题目名称 货物搬运 最终得分 10
用户昵称 风华正茂 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-10-26 21:16:20
显示代码纯文本
#include<fstream>
using namespace std;
int i,j,a[10001],n,temp=0,ping,chazhi,tot=0;
int cha()
{
	int t,result;
	chazhi=10001;
	for(int i=1;i<=n;i++)
	{
		t=a[i]-ping;
		if(t<0)
			t=-t;
		if(t<chazhi&&t!=0)
		{
			result=i;
			chazhi=t;
		}
	}
	return result;
}
int main()
{
	ifstream cin("move.in");
	ofstream cout("move.out");
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>a[i];
		temp=temp+a[i];
	}
	ping=temp/n;
	for(i=1;i<=n;i++)
	{
		int p,tou,wei;
		p=cha();
		if(p==1)
			tou=n;
		else
			tou=p-1;
		if(p==n)
			wei=1;
		else
			wei=p+1;
		int link=10001;
		temp=10001;
		if(a[p]<ping)
		{
			if(a[tou]>ping||a[wei]>ping)
			{
				if(a[tou]>ping)
					temp=a[tou]-ping;
				if(a[wei]>ping)
					link=a[wei]-ping;
				if(link<temp)
				{
					a[wei]=a[wei]-(ping-a[p]);
					tot=tot+ping-a[p];
					a[p]=ping;
				}
				else
				{
					a[tou]=a[tou]-(ping-a[p]);
					tot=tot+ping-a[p];
					a[p]=ping;
				}
			}
			else
			{
				temp=ping-a[tou];
				link=ping-a[wei];
				if(link<temp)
				{
					a[wei]=a[wei]-(ping-a[p]);
					tot=tot+ping-a[p];
					a[p]=ping;
				}
				else
				{
					a[tou]=a[tou]-(ping-a[p]);
					tot=tot+ping-a[p];
					a[p]=ping;
				}
			}
		}
		if(a[p]>ping)
		{
			if(a[tou]<ping||a[wei]<ping)
			{
				if(a[tou]>a[wei])
				{
					a[wei]=a[wei]+(a[p]-ping);
					tot=tot+a[p]-ping;
					a[p]=ping;
				}
				else
				{
					a[tou]=a[tou]+(a[p]-ping);
					tot=tot+a[p]-ping;
					a[p]=ping;
				}
			}
		}
	}
	cout<<tot<<endl;
	return 0;
}