您的位置:首页 > 其它

有一片1000*1000的草地,小易初始站在(1,1)(最左上角的位置)。小易在每一秒会横向或者纵向移动到相邻的草地上吃草(小易不会走出边界)。大反派超超想去捕捉可爱的小易,他手里有n个陷阱。第i个陷阱被安置在横坐标为xi ,纵坐标为yi 的位置上,小易一旦走入一个陷阱,将会被超超捕捉。你为了去解救小易,需要知道小易最少多少秒可能会走入一个陷阱,从而提前解救小易。 输入描述: 第一行为一个整数n

2016-08-17 16:34 1251 查看
有一片1000*1000的草地,小易初始站在(1,1)(最左上角的位置)。小易在每一秒会横向或者纵向移动到相邻的草地上吃草(小易不会走出边界)。大反派超超想去捕捉可爱的小易,他手里有n个陷阱。第i个陷阱被安置在横坐标为xi ,纵坐标为yi 的位置上,小易一旦走入一个陷阱,将会被超超捕捉。你为了去解救小易,需要知道小易最少多少秒可能会走入一个陷阱,从而提前解救小易。

[b]输入描述:[/b]
第一行为一个整数n(n ≤ 1000),表示超超一共拥有n个陷阱。
第二行有n个整数xi,表示第i个陷阱的横坐标
第三行有n个整数yi,表示第i个陷阱的纵坐标
保证坐标都在草地范围内。


[b]输出描述:[/b]
输出一个整数,表示小易最少可能多少秒就落入超超的陷阱


[b]输入例子:[/b]
3
4 6 8
1 2 1


[b]输出例子:[/b]
3
找陷阱和目标之间的最短距离
最小的dx-1+dy-1(dx和dy为陷阱的坐标)


#include<iostream>
using namespace std;
const int N=1000;

int dx
,dy
;
int n;
int min(int a,int b)
{
return a>b?b:a;
}
int main()
{
while(scanf("%d",&n)>0)
{
int mn=2000;
for(int i=0;i<n;i++)
{

scanf("%d",&dx[i]);

}
for(int i=0;i<n;i++)
{
scanf("%d",&dy[i]);
mn=min(mn,dx[i]-1+dy[i]-1);
}
cout<<mn<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐