R2_F_Teleportation

Teleportation

time limit per test

15 seconds

memory limit per test

1024 megabytes

input

standard input

output

standard output

One of the farming chores Farmer John dislikes the most is hauling around lots of cow manure. In order to streamline this process, he comes up with a brilliant invention: the manure teleporter! Instead of hauling manure between two points in a cart behind his tractor, he can use the manure teleporter to instantly transport manure from one location to another.

Farmer John’s farm is built along a single long straight road, so any location on his farm can be described simply using its position along this road (effectively a point on the number line). A teleporter is described by two numbers xx and yy, where manure brought to location xxcan be instantly transported to location yy, or vice versa.

Farmer John wants to transport manure from location aa to location bb, and he has built a teleporter that might be helpful during this process (of course, he doesn’t need to use the teleporter if it doesn’t help). Please help him determine the minimum amount of total distance he needs to haul the manure using his tractor.

Input

The first and only line of input contains four space-separated integers: aa and bb, describing the start and end locations, followed by xx and yy, describing the teleporter. All positions are integers in the range 0…1000…100, and they are not necessarily distinct from each-other.

Output

Print a single integer giving the minimum distance Farmer John needs to haul manure in his tractor.

Example

input

Copy

3 10 8 2

output

Copy

3

Note

In this example, the best strategy is to haul the manure from position 3 to position 2, teleport it to position 8, then haul it to position 10. The total distance requiring the tractor is therefore 1 + 2 = 3.

题目大意

给两个点a,b,然后人要从a到b,然后再给两个传送门x,y(双向),问a到b的最短路径。

题目分析

这……水题…………

直接计算a到b的距离,a到x,y到b的距离,a到y,x到b的距离,取最小值就可以了(记得取绝对值)。就一个样例……怎么搞都能过的吧

代码

#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int main(int argc, char const *argv[]) {
  int x, y, a, b;
  scanf("%d%d%d%d", &a, &b, &x, &y);
  int ans = abs(a - b);
  ans = min(ans, abs(a - x) + abs(b - y));
  ans = min(ans, abs(a - y) + abs(b - x));
  printf("%d\n", ans);
  return 0;
}

猜你喜欢

转载自blog.csdn.net/IT_w_TI/article/details/88557033