解救小易
有一片1000*1000的草地,小易初始站在(1,1)(最左上角的位置)想际。小易在每一秒會(huì)橫向或者縱向移動(dòng)到相鄰的草地上吃草(小易不會(huì)走出邊界)。大反派超超想去捕捉可愛的小易茫虽,他手里有n個(gè)陷阱屎勘。第i個(gè)陷阱被安置在橫坐標(biāo)為xi ,縱坐標(biāo)為yi 的位置上共啃,小易一旦走入一個(gè)陷阱占调,將會(huì)被超超捕捉。你為了去解救小易移剪,需要知道小易最少多少秒可能會(huì)走入一個(gè)陷阱究珊,從而提前解救小易。
輸入描述:
第一行為一個(gè)整數(shù)n(n ≤ 1000)纵苛,表示超超一共擁有n個(gè)陷阱剿涮。
第二行有n個(gè)整數(shù)xi,表示第i個(gè)陷阱的橫坐標(biāo)
第三行有n個(gè)整數(shù)yi攻人,表示第i個(gè)陷阱的縱坐標(biāo)
保證坐標(biāo)都在草地范圍內(nèi)取试。
輸出描述:
輸出一個(gè)整數(shù),表示小易最少可能多少秒就落入超超的陷阱
示例1
輸入
3
4 6 8
1 2 1
輸出
3
思路:這玩意乍一看還以為bfs,結(jié)果其實(shí)就找到距離0怀吻,0最近的那個(gè)坐標(biāo)瞬浓,判斷最近直接用x+y就好。
#include<iostream>
#include<string.h>
#include<string>
#include<ctype.h>
#include<math.h>
#include<set>
#include<map>
#include<vector>
#include<queue>
#include<bitset>
#include<algorithm>
#include<time.h>
using namespace std;
float juli(int x,int y) {
return x+y;
}
int main() {
int n;
cin >> n;
vector<int> xx, yy;
int maxI = 0;
int maxJ = 0;
for (int i = 0; i < n; i++) {
int tem;
cin >> tem;
if (tem >= maxJ)maxJ = tem;
xx.push_back(tem);
}
for (int i = 0; i < n; i++) {
int tem;
cin >> tem;
if (tem >= maxI)maxI = tem;
yy.push_back(tem);
}
float minjuli = 2000;
int minI;
for (int i = 0; i < n; i++) {
if(minjuli >(xx[i]+yy[i])){
minjuli = (xx[i]+yy[i]);
minI = i;
}
}
cout << (xx[minI]-1)+(yy[minI]-1) << endl;
return 0;
}