USACO-Barn Repair

来源:互联网 发布:网络教育英语b统考 编辑:程序博客网 时间:2024/05/22 18:02

http://ace.delos.com/usacoprob2?a=aGfy6bAUEQK&S=barn1

额。。。比较水的题,估计没有比我的更短的程序了。。。。

先用一块木板把全部牛棚盖上,再删去(n-1)个空位,剩下的就是结果了。

删去(n-1)个空位,剩下n块牛棚,刚好符合要求,而删去的空位要最大就行了

#include <iostream>#include <cstdio>#include <string.h>#include <algorithm>using namespace std;bool compare(int a,int b){    return a>b;}int main(){    freopen("barn1.in","r",stdin);    freopen("barn1.out","w",stdout);    int n,len,ncow;    cin>>n>>len>>ncow;    int a[205]={0};    for (int i=1;i<=ncow;i++)        scanf("%d",&a[i]);    sort(a+1,a+ncow+1);    int sum=a[ncow]-a[1]+1;    int b[205]={0};    for (int i=1;i<=ncow-1;i++)  //计算距离差        b[i]=a[i+1]-a[i]-1;    sort(b+1,b+ncow,compare);      //距离差排序    for (int i=1;i<n;i++)             //逐个删去(n-1)个空位        sum-=b[i];    cout<<sum<<endl;    return 0;}
原创粉丝点击