题意:
一些skins要一字排开并盖上books防雨淋,已知每张skin两侧的books所需的最短长度,当然和相邻的skin的距离也不能小于这个,求最少需要多少books。
题解:
题目里面貌似没有明说skins可以重新排序,但是minimal体现了这一点……
所以将skin从小到大排就行了。
//Time:15ms
//Memory:345KB
//Length:462B
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#define MAXN 1010
using namespace std;
int a[MAXN];
int main()
{
//freopen("/home/moor/Code/input","r",stdin);
int n,ans;
while(scanf("%d",&n)==1)
{
ans=0;
a[0]=a[n+1]=0;
for(int i=1;i<=n;++i) scanf("%d",&a[i]);
sort(a+1,a+1+n);
for(int i=1;i<=n+1;++i) ans+=max(a[i],a[i-1]);
printf("%d\n",ans);
}
return 0;
}