Description
Input
Output
單獨的一行包含一個整數表示所需木板的最小總長度.
Sample Input
Sample Output
HINT
一種最優的安排是用板攔住牛棚3-8,14-21,25-31,40-43.
這道題看起來好難,其實只需要找到n-1個空檔來不鋪板子,sort一下。
#include<stdio.h>
#include<algorithm>
using namespace std;
int d[201],f[201];
int main()
{
int a,b,c,i;
scanf("%d%d%d",&a,&b,&c);
for(i=1;i<=c;i++)
scanf("%d",&d[i]);
sort(d+1,d+c+1);
for(i=1;i<=c;i++)
f[i]=d[i]-d[i-1];
int ans=b;
ans-=d[1]-1;
ans-=b-d[c];
for(i=1;i<c;i++)
f[i]=f[i+1];
sort(f+1,f+c);
ans+=a-1;
if(a>=c)
printf("%d",c);
else
{
a--;
for(i=c-1;i>0;i--)
{
if(a==0)
printf("%d",ans);
ans-=f[i];
a--;
}
}
}