即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

USACO-Section1.3 Ski Course Design

编程语言 qq_34600424 19℃ 0评论

2017-6-7

题目描述

给你一群数字,在最大最小差值不大于17的情况下求出最小的花销

解答

枚举在中间值的所有的情况

代码

/*
ID: 18795871
PROG: skidesign
LANG: C++
*/
#include
#include
#include
using namespace std;

const int N = 1000;
int x[N+1],n;

ifstream fin("skidesign.in");
ofstream fout("skidesign.out");

int res(int t){
   int s=0;
   for (int i=1;i<=n;i++){
      if (x[i]8) s+=(t-x[i]-8)*(t-x[i]-8);
      else if (x[i]>t&&x[i]-t>9) s+=(x[i]-t-9)*(x[i]-t-9);
   }
   return s;
}

int main()
{
    int r=0x3f3f3f3f;
    fin>>n;
    for (int i=1;i<=n;i++){
        fin>>x[i];
    }
    sort(x+1,x+n);
    if (x[n]-x[1]<=17) fout<<"0"<else
    {
        for (int i=8;i<=N-9;i++){
            r=min(res(i),r);
        }
        fout<return 0;
}

转载请注明:CodingBlog » USACO-Section1.3 Ski Course Design

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情