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