AT2344 NarrowRectanglesEasy


题目传送门

思路

首先,简化图像

把两个矩形当做一个线段,放在数轴上,就成了这样
图
那第二个矩阵连接到第一个矩阵上的最小横向距离,不就是 $abs(b-a-w)$ 吗???

但是需要考虑 $a$ 图形在 $b$ 图形的右侧的情况,如图:
图

最后就是特判:

当点 $a$ 在点 $b$ 与点 $b+w$ 中间时,第二个矩阵与第一个矩阵的最小横向距离就是 $0$ 啦!

图

最期待的时刻:上代码!

#include<bits/stdc++.h>//头文件
using namespace std;
int main(){
	int w,a,b;
	cin>>w>>a>>b;//输入
	if(a>b)swap(a,b);//交换两个图形
	int q=b-a-w;//距离
	if(q>=0)cout<<q<<endl;//有距离
	else cout<<0<<endl;//无距离
	return 0;
}

本人的第一篇题解,点个赞呗


文章作者: alex_liu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 alex_liu !
  目录