博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
noip普及组2018T2 龙虎斗
阅读量:6951 次
发布时间:2019-06-27

本文共 1192 字,大约阅读时间需要 3 分钟。

p1位置加s1个工兵,先算一遍双方势力之差,然后依次枚举把s2个工兵放在所有的兵营里,取最小就行了

#include
#include
#include
using namespace std;long long n,m,sum1,sum2,minn,mink,a[100010],p,s1,s2;int read(){ int x=0; int mk=1; char ch=getchar(); while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar(); if(ch=='-'){ mk=-1; ch=getchar(); } while(ch>='0'&&ch<='9'){ x=x*10+ch-48; ch=getchar(); } return x*mk;}//快速读入int main(){ n=read(); for(int i=1;i<=n;i++) a[i]=read(); m=read();p=read();s1=read();s2=read();//读入 a[p]+=s1;//累计p的位置 for(int i=1;i<=m-1;i++) sum1+=a[i]*(m-i); for(int i=m+1;i<=n;i++) sum2+=a[i]*(i-m);//累计和 minn=abs(sum2-sum1); mink=m;//放在第m的位置 if(sum1
abs(sum2-(sum1+s2*(m-i)))){ minn=abs(sum2-(sum1+s2*(m-i))); mink=i; }//放在左边 }else{ for(int i=m+1;i<=n;i++) if(minn>abs(sum1-(sum2+s2*(i-m)))){ minn=abs(sum1-(sum2+s2*(i-m))); mink=i; }//放在右边 } printf("%d",mink);//输出 return 0;}

  

转载于:https://www.cnblogs.com/zhouxuanbodl/p/10046232.html

你可能感兴趣的文章
使用 Ruby 拓展 Vim
查看>>
Android序列化
查看>>
vue项目坑一 (node环境内存溢出问题)
查看>>
一个故事让你彻底理解 Https
查看>>
Redis 主从复制
查看>>
java并发编程学习10--同步器--倒计时门栓
查看>>
centos7下安装LNMP(nginx+PHP7.1.9+mysql5.7)
查看>>
实现compose的五种思路
查看>>
【228天】黑马程序员27天视频学习笔记【Day27-上】
查看>>
NodeAPI学习之Buffer
查看>>
深入java单例模式
查看>>
基于zepto的组件系统搭建
查看>>
c++学习笔记 --- inline这玩意
查看>>
create-react-app
查看>>
20170812-XSS跨站脚本攻击
查看>>
Let’s Build |> 使用Elixir,Phoenix和React打造克隆版的Slack(part 1)
查看>>
如何让 StackNaivgator 实现越级回跳
查看>>
工具简述
查看>>
Hbase 集群搭建
查看>>
quartz在spring中的使用
查看>>