题目描述:

轩轩和凯凯正在玩一款叫《龙虎斗》的游戏,游戏的棋盘是一条线段,线段上有n个兵营(自左至右编号1∼n),相邻编号的兵营之间相隔1厘米,即棋盘为长度为n−1厘米的线段。i号兵营里有ci位工兵。 下面图1为 n=6 的示例:

轩轩在左侧,代表“龙”;凯凯在右侧,代表“虎”。 他们以m号兵营作为分界, 靠左的工兵属于龙势力,靠右的工兵属于虎势力,而第m号兵营中的工兵很纠结,他们不属于任何一方。

一个兵营的气势为:该兵营中的工兵数 * 该兵营到 m号兵营的距离;参与游戏一方的势力定义为:属于这一方所有兵营的气势之和。
下面图 2 为 n = 6,m = 4 的示例,其中红色为龙方,黄色为虎方:

游戏过程中,某一刻天降神兵,共有s1位工兵突然出现在了p1号兵营。作为轩轩和凯凯的朋友,你知道如果龙虎双方气势差距太悬殊,轩轩和凯凯就不愿意继续玩下去了。为了让游戏继续,你需要选择一个兵营p2,并将你手里的s2位工兵全部派往兵营p2,使得双方气势差距尽可能小。

注意:你手中的工兵落在哪个兵营,就和该兵营中其他工兵有相同的势力归属(如果落在m号兵营,则不属于任何势力)。

输入格式:

输入的第一行包含一个正整数n,代表兵营的数量。接下来的一行包含n个正整数,相邻两数之间以一个空格分隔,第i个正整数代表编号为i的兵营中起始时的工兵数量ci。接下来的一行包含四个正整数,相邻两数间以一个空格分隔,分别代表m,p1,s1,s2。

输出格式:

输出一行,包含一个正整数,即p2,表示你选择的兵营编号。如果存在多个编号同时满足最优,取最小的编号。

限制:

空间限制:128MByte
时间限制:1秒

样例:

输入:输入 #1
6
2 3 2 3 2 3
4 6 5 2 输入 #2
6
1 1 1 1 1 16
5 4 1 1
输出:输出 #1
2输出 #2
1

提示:

【输入输出样例 1 说明】见问题描述中的图 2。双方以m=4号兵营分界,有s1=5位工兵突然出现在p1=6号兵营。 龙方的气势为:2×(4−1)+3×(4−2)+2×(4−3)=14虎方的气势为:2×(5−4)+(3+5)×(6−4)=18当你将手中的s2 = 2位工兵派往p2 = 2号兵营时,龙方的气势变为:14+2×(4−2)=18此时双方气势相等。【输入输出样例 2 说明】双方以m = 5号兵营分界,有s1 = 1位工兵突然出现在p1 = 4号兵营。龙方的气势为:1×(5−1)+1×(5−2)+1×(5−3)+(1+1)×(5−4)=11虎方的气势为:16×(6−5)=16当你将手中的s2 = 1位工兵派往p2 = 1号兵营时,龙方的气势变为:11+1×(5−1)=15此时可以使双方气势的差距最小。【数据规模与约定】1 < m < n,1 ≤ p1 ≤ n对于20%的数据,n = 3,m = 2, ci = 1, s1,s2 ≤ 100另有20%的数据,n ≤ 10, p1 = m, ci = 1, s1,s2 ≤ 100对于60%的数据,n ≤ 100, ci = 1, s1,s2 ≤ 100对于80%的数据,n ≤ 100, ci,s1,s2 ≤ 100对于100%的数据,n≤105, ci,s1,s2≤109

注意数据范围!(我被这个坑到哭TAT)一定要用 long long类型

————————————————————华丽的分割线—————————————————

不多说了,一切尽在代码掌控之中:

#include<iostream>
#include<algorithm>
using namespace std;
int n;
long long t,m,p1,s1,s2,sum1=0,sum2=0;
long long a[11111111];
long long Min=0x3f3f3f3f;
int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lld",&a[i]);}scanf("%lld%lld%lld%lld",&m,&p1,&s1,&s2);a[p1]+=s1;for(int i=1;i<=m;i++){sum1+=a[i]*(m-i);}for(int i=m;i<=n;i++){sum2+=a[i]*(i-m);}t=m;for(int i=1;i<=n;i++){long long t1=sum1,t2=sum2;if(i<m){t1+=s2*(m-i);} else if(i>m){t2+=s2*(i-m);}if(Min>abs(t1-t2)){Min=abs(t1-t2);t=i;}}printf("%lld\n",t);return 0;
}
//AC了 TAT

龙虎斗 详解(C++)相关推荐

  1. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  2. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  3. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  4. 通俗易懂word2vec详解词嵌入-深度学习

    https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...

  5. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

  6. CUDA之nvidia-smi命令详解---gpu

    nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...

  7. Bert代码详解(一)重点详细

    这是bert的pytorch版本(与tensorflow一样的,这个更简单些,这个看懂了,tf也能看懂),地址:https://github.com/huggingface/pytorch-pretr ...

  8. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

  9. pytorch nn.LSTM()参数详解

    输入数据格式: input(seq_len, batch, input_size) h0(num_layers * num_directions, batch, hidden_size) c0(num ...

  10. Java集合详解之Map

    一.首先看看集合框架体系图 从图中可以看到,Map接口扩展了Iterator接口,关于Iterator接口详解请移步:Iterator接口详解 二.Map是什么? Map<k,v>使用键值 ...

最新文章

  1. 2 0 1 8 全球人工智能技术大会--邀请函
  2. em算法怎么对应原有分类_机器学习系列之EM算法
  3. 如何清理由cmake生成的项目文件?
  4. MyBatis学习总结(七)——Mybatis缓存
  5. SAP 采购订单税金抓取方法
  6. SSL 1760——商店选址问题(最短路)
  7. 十问十答 CDDL 许可证
  8. 网络广告中的CPS,CPA,CPL,CPC,CPM,CPR的含义是什么?
  9. 蓝厂为什么着急推出vivo X23?只因vivo NEX叫好不叫座
  10. 强悍的 Linux —— 权限管理(组及用户管理)
  11. LANMP架构----------------------mysql(2)
  12. 中国电网计算机面试题目,国家电网面试经验
  13. 如何在企业微信网页授权链接中加入自定义参数
  14. 百度推广技巧:如何提高网站点击率?
  15. Epub电子书实战解析
  16. CentOS7和CentOS8 FreeSWITCH 1.10.7 简单图形化界面18--内网的讯时FXO网关SIP对接到内网的FreeSWITCH
  17. 摆动序列算法C语言,376 摆动序列 leetcode
  18. 一文带你了解ARM的发展历程
  19. 最全的厚黑学…教你怎样混社会
  20. 批量修改照片名称的快速方法

热门文章

  1. 医疗保健行业未来发展的5大趋势预测
  2. 搭建一个wordpress
  3. 10 个 Linux 网络和监控命
  4. 安装realmedia多路分配器
  5. java.sql.SQLException: Field 'id' doesn't have a default value解决方法
  6. day09 python之函数进阶
  7. 2013B题碎纸片拼接
  8. H3C CLI基础笔记(交换机,链路聚合-DHCP)
  9. 跟我学Kafka之zookeeper的存储结构
  10. WPF ICommandSource Implementations Leak Memory!