讨论 / AC代码如下,开两个数组记录,否则会超时
Ending 2014-07-01 01:09:33
点我顶贴 收藏 删除
#include<iostream>

#include<algorithm>

using namespace std;

int main()

{

int arr[10005],ncase,sum = 0;

cin >> ncase;

for(int i = 0; i < ncase; ++i)

cin >> arr[i];

sort(arr,arr + ncase);

int f1 = 0,r1 = ncase,f2 = 0,r2 = 0;

while(true)

{

if(f1 == r1 && f2 + 1 == r2)

break;

int ans = 0;

for(int i = 0;i < 2;++i)

{

if(f1 != r1)

{

if(f2 != r2)

{

if(arr[f1] < arr[f2])

ans += arr[f1++];

else

ans += arr[f2++];

}

else

ans += arr[f1++];

}

else

ans += arr[f2++];

}

sum += ans;

arr[r2++] = ans;

}

cout << sum;

}

查看更多回复
提交回复