Crossing River
2016-07-13 16:03
106 查看
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int t, n, a[1001], i;
scanf("%d", &t);
while(t--)
{
int sum = 0;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
qsort(a, n, sizeof(a[0]), cmp);
while(1)
{
if(n == 1)
{
sum += a[0];
break;
}
else if(n == 2)
{
sum += a[1];
break;
}
else if(n == 3)
{
sum += a[0]+a[1]+a[2];
break;
}
else
{
if(2*a[1] > a[n-2]+a[0])
sum += 2*a[0]+a[n-1]+a[n-2];
else
sum += 2*a[1]+a[0]+a[n-1];
n = n-2;
}
}
printf("%d\n", sum);
}
return 0;
}
#include<stdlib.h>
#include<algorithm>
using namespace std;
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int t, n, a[1001], i;
scanf("%d", &t);
while(t--)
{
int sum = 0;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
qsort(a, n, sizeof(a[0]), cmp);
while(1)
{
if(n == 1)
{
sum += a[0];
break;
}
else if(n == 2)
{
sum += a[1];
break;
}
else if(n == 3)
{
sum += a[0]+a[1]+a[2];
break;
}
else
{
if(2*a[1] > a[n-2]+a[0])
sum += 2*a[0]+a[n-1]+a[n-2];
else
sum += 2*a[1]+a[0]+a[n-1];
n = n-2;
}
}
printf("%d\n", sum);
}
return 0;
}
相关文章推荐
- 聊一聊 Android 6.0 的运行时权限
- C# 16进制与字符串、字节数组之间的转换
- andirod
- Chrome WebDriver(splinter)
- 修改浏览器滚动条样式
- xml与txt文件格式互换
- linux进程编程(一)-- fork()函数简单应用
- Linux基础(3)之文件管理
- 万能的数据传输格式——XML/json
- Android spinner下垃菜单用法实例详解
- Maven-setting配置详细说明
- 区间_纪中1382_dp
- httpd属性和配置
- MHA+Keepalived
- Eclipse Java注释模板设置详解
- CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法
- mybatis之 SqlSessionFactory单例创建
- windows下python2.7安装grpc
- 优测优社区干货精选|老司机乱谈编辑器之神——vim
- jquery产品树形介绍页特效