题目链接:http://codeforces.com/contest/1020/problem/A
题意就是输入n,h,a,b,k,表示有n座塔楼,每座有h层,然后相邻两个塔楼从a层到b层都有通道连通,有k次询问。然后输入k条信息x1,x2,x3,x4,表示从x1塔的第x2位置到x3塔的x4位置需要走多少步。
写法就是分情况讨论,仔细读题,注意细节,我的代码写的挺辣鸡的...
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#define ll long long
using namespace std;
ll n,h,a,b,k;
int main()
{
cin>>n>>h>>a>>b>>k;
while(k--){
ll z,x,c,v;
cin>>z>>x>>c>>v;
if(c == z){
cout<<abs(x-v)<<endl;
continue;
}
if(x >= a && x <= b){
cout<<abs(c - z) + abs(x - v)<<endl;
}
else{
ll ans = abs(c - z);
ll ans1 = abs(b - x);
ans1 += abs(b - v);
ll ans2 = abs(x - a);
ans2 += abs(a - v);
cout<<min(ans1,ans2)+ans<<endl;
}
}
return 0;
}