比赛 test1 评测结果 AAAAAAAAAA
题目名称 合并果子 最终得分 100
用户昵称 Emine 运行时间 0.569 s
代码语言 C++ 内存使用 0.18 MiB
提交时间 2017-02-28 19:39:44
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,a[10001],i,j,s=0,x;
void px(int l,int r)
{   
    int i=l,j=r,m=a[(l+r)/2],p;
    do
    {
        while (a[i]<m)
	      i++;
        while (a[j]>m)
	      j--;
        if (i<=j)
        {
           p=a[i];a[i]=a[j];a[j]=p;
	       i++;
	       j--;
        }
    }
	while (i<=j);
    if(l<j)
	  px(l,j);
	if(i<r)
	  px(i,r);
}
int main()
{
	freopen("fruit.in","r",stdin);
	freopen("fruit.out","w",stdout);
    cin>>n;
    for (i=1;i<=n;++i)
      cin>>a[i];
    px(1,n);
    for (i=1;i<n;++i)
    {
	    x=a[i]+a[i+1];
        s=s+x;	 
	    for (j=i+1;j<=n;j++)
        {
            a[j]=a[j+1];
            if (a[j]>x)
            {
                a[j]=x;
			    break;
             }
          }
	      if (j>n)
		    a[n]=x;
       }
       cout<<s;
       return 0;
}