Codeforces Round #503 (by SIS, Div. 2) A. New Building for SIS(阅读理解)

题目链接: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;
}

猜你喜欢

转载自blog.csdn.net/Charles_Zaqdt/article/details/81592133