好端端的被HACK掉了。。。应该是在两端都要补W个0才对,之前只想到要在后面补足0,没想到前面也应该补足,因为前面即便存在0也可能使得移动的积木数最少。。

T_T

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define LL __int64
using namespace std; LL height[150005];
LL in[150005];
LL out[150005]; LL mint(LL a,LL b){
if(a<b) return a;
return b;
}
LL maxt(LL a,LL b){
if(a>b) return a;
return b;
} int main(){
LL n,w,h;
while(scanf("%I64d%I64d%I64d",&n,&w,&h)!=EOF){
LL sum=0;
memset(height,0,sizeof(height));
for(LL i=w+1;i<=n+w;i++){
scanf("%I64d",&height[i]);
sum+=height[i];
}
if(sum<w*h) puts("-1");
else{
n=n+w+w;
in[0]=out[0]=0;
LL ans=(1ll<<62);
for(LL i=1;i<=n;i++){
if(height[i]>=h){
out[i]=out[i-1]+height[i]-h;
in[i]=in[i-1];
}
if(height[i]<=h){
in[i]=in[i-1]+h-height[i];
out[i]=out[i-1];
}
if(i-w>=0){
ans=mint(ans,maxt(in[i]-in[i-w],out[i]-out[i-w]));
}
}
printf("%I64d\n",ans);
}
}
return 0;
}

  

HDU 5191的更多相关文章

  1. HDU 5191 Building Blocks

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5191 bc(中文):http://bestcoder.hdu.edu.cn/contests ...

  2. BestCoder Round #34_1002 以及 hdu 5191

    枚举最终的W堆积木在哪,确定了区间,那么就需要把高于H的拿走,低于H的补上,高处的积木放到矮的上面,这样最优. 注意多出来的积木可以放在已有积木的前面或者后面,独立成一堆积木,所以需要在n堆积木的前后 ...

  3. hdu 5191(思路题)

    Building Blocks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  4. HDU—— 5159 Building Blocks

    Problem Description After enjoying the movie,LeLe went home alone. LeLe decided to build blocks. LeL ...

  5. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  6. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  7. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  8. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  9. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

随机推荐

  1. P1390--公约数的和

    这个题比较狗,一开始没有啥思路,但是看完题解觉得还是比较好理解的.主要思路就是需要把每个数是几个数的最大公约数求出来,然后求和就行了.蓝书P124例九 设f(n) = gcd(1,n) + gcd(2 ...

  2. 更新svn时出错,大概的意思是项目被锁定了

  3. XML案例(简单的考生成绩管理系统)

    1.以如下格式的exam.xml文件为例 <?xml version="1.0" encoding="UTF-8" standalone="no ...

  4. 基于Angular4+ server render(服务端渲染)开发教程

    目标: 1.更好的 SEO,方便搜索爬虫抓取页面内容 2.更快的内容到达时间(time-to-content) 影响: 1.用户:比原来更快的看到渲染的页面,提升用户体验 2.开发人员:某些代码可能需 ...

  5. PHP无限级分类实现(递归+非递归)

    <?php /** * Created by PhpStorm. * User: qishou * Date: 15-8-2 * Time: 上午12:00 */ //准备数组,代替从数据库中检 ...

  6. idea新建文件无法识别(二)

    1,出现问题的步骤: 当想新增一个Hello.java文件时候 选错了文件类型.新建了一个text文件.当回过头来把文件后缀改掉的时候发现idea无法识别,颜色一直是灰色. 2,解决问题的办法: 选择 ...

  7. 计算某个时间段(2017-10-01 2017-12-01)内svn更新文件的MD5

    #!/bin/sh svn up svn log -v -r {$1}:{$2} | grep / | grep -v xxx | sort -f -u | uniq | awk -F 'xxxx' ...

  8. java 实现将java对象转为yaml文件

    首先我们建两个类,以下两个类展示的是一个学生拥有多个手机号码联系人. 先是学生类: package com.ming.yaml.beans; import java.util.ArrayList; i ...

  9. .Net Core学习(一)

    1.安装.Net Core https://www.microsoft.com/net/core#windows 2.创建一个.Net Core项目,win+R调出控制台,输入下面命令 mkdir a ...

  10. 移动端弹性滑动以及vue记录滑动位置

    -webkit-overflow-scrolling介绍 -webkit-overflow-scrolling: auto | touch; auto: 普通滚动,当手指从触摸屏上移开,滚动立即停止 ...