A. Ropewalkers

题目链接:http://codeforces.com/contest/1185/problem/A

题目:

Polycarp decided to relax on his weekend and visited to the performance of famous ropewalkers: Agafon, Boniface and Konrad.

The rope is straight and infinite in both directions. At the beginning of the performance, Agafon, Boniface and Konrad are located in positions a, b and c respectively. At the end of the performance, the distance between each pair of ropewalkers was at least d.

Ropewalkers can walk on the rope. In one second, only one ropewalker can change his position. Every ropewalker can change his position exactly by 1
(i. e. shift by 1 to the left or right direction on the rope). Agafon, Boniface and Konrad can not move at the same time (Only one of them can move at each moment). Ropewalkers can be at the same positions at the same time and can "walk past each other".

You should find the minimum duration (in seconds) of the performance. In other words, find the minimum number of seconds needed so that the distance between each pair of ropewalkers can be greater or equal to d.

Ropewalkers can walk to negative coordinates, due to the rope is infinite to both sides.
Input

The only line of the input contains four integers a, b, c, d (1≤a,b,c,d≤109). It is possible that any two (or all three) ropewalkers are in the same position at the beginning of the performance.
Output

Output

one integer — the minimum duration (in seconds) of the performance.
Examples
Input

5 2 6 3

Output

2

Input

3 1 5 6

Output

8

Input

8 3 3 2

Output
2
Input

2 3 10 4

Output

3

Note

In the first example: in the first two seconds Konrad moves for 2 positions to the right (to the position 8
), while Agafon and Boniface stay at their positions. Thus, the distance between Agafon and Boniface will be |5−2|=3, the distance between Boniface and Konrad will be |2−8|=6 and the distance between Agafon and Konrad will be |5−8|=3. Therefore, all three pairwise distances will be at least d=3, so the performance could be finished within 2 seconds.

题意:

三个数a,b,c,在一坐标轴上,使得相邻的两个数之差大于等于d,求变换步数。

思路:

先三个数排序,计算相邻两个数的差值和d的差值即可

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const int maxn=2e5+;
int main()
{
int a,b,c,d;
while(cin>>a>>b>>c>>d)
{
int result=;
int _max=max(max(a,b),c);
int _min=min(min(a,b),c);
int _mid=a+b+c-_max-_min;
int _1=_mid-_min;
int _2=_max-_mid;
if(_1<d)
result+=(d-_1);
if(_2<d)
result+=(d-_2);
cout<<result<<endl;
}
return ;
}

最新文章

  1. 【SAP BO】BOE 4.1版本新特性
  2. 标准库中的-stack
  3. XP与Win2003下网站配置
  4. 反射给对象赋值遇到的问题——类型转换[转http://blog.csdn.net/xiaohan2826/article/details/8536074]
  5. How to solve “sudo: /etc/sudoers.d is world writable”
  6. VirtualBox 上安装CentOS 6.5
  7. 用extundelete恢复rm -rf删的文件
  8. cordova插件开发-1
  9. Python跨目录调程序
  10. 不安全代码只会在使用 /unsafe 编译的情况下出现
  11. Add correct host key in /root/.ssh/known_hosts to get rid of this message
  12. 浅析LRC歌词文件
  13. kubernetes入门之构建单机集群
  14. CF1106F Lunar New Year and a Recursive Sequence 原根、矩阵快速幂、BSGS
  15. 用户管理系统之class
  16. ES6,新增数据结构Set的用法
  17. C语言清屏函数
  18. 1个比较简单的使用java反射机制获取前台数据进行数据封装的例子
  19. hadoop学习WordCount+Block+Split+Shuffle+Map+Reduce技术详解
  20. 获取easyui calendar 属性

热门文章

  1. WPF利用HelixToolKit后台导入3D模型
  2. 嵌入式Linux开发环境的搭建
  3. 实现js呼叫流行
  4. LAN公布java web项目的方法的外侧
  5. linux没有 conio.h解决的方式
  6. C# 声明基于角色的安全性
  7. Delphi中返回类型为string的函数的一个陷阱(不是很懂)
  8. nodejs dateformat date-utils
  9. C# Insert批量插入
  10. 使用ArcGIS Server发布我们的数据