F. 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 x and y, where manure brought to location x can be instantly transported to location y, or vice versa.
Farmer John wants to transport manure from location a to location b, 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: a and b, describing the start and end locations, followed by x and y, describing the teleporter. All positions are integers in the range 0…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
3 10 8 2
output
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.
看到15秒1G一开始吓到了都没点进去。
后来看了原来是这么水的题目。
学到了,需要一开始就要认真地看每一题。
代码
#include<cstdio>
#include<cstring>
#include<queue>
#include<vector>
#include<algorithm>
#define MS(X) memset(X,0,sizeof(X))
#define MSC(X) memset(X,-1,sizeof(X))
typedef long long LL;
using namespace std;
int a,b,x,y;
int main(){
int xmi,ymi,dis;
scanf("%d%d%d%d",&a,&b,&x,&y);
dis=abs(a-b);
xmi=abs(a-x)+abs(b-y);
ymi=abs(a-y)+abs(b-x);
int ans=min(dis,min(xmi,ymi));
printf("%d\n",ans);
return 0;
}