列表

详情


WY17. 解救小易

描述

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

输入描述

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

输出描述

输出一个整数,表示小易最少可能多少秒就落入超超的陷阱

示例1

输入:

3
4 6 8
1 2 1

输出:

3

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 376KB, 提交时间: 2021-02-25

#include <stdio.h>
#define MAXN 1005
int n,x[MAXN];
int main()
{
    int i,t,min=0x7fffffff;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",x+i);
    for(i=0;i<n;i++)
    {
        scanf("%d",&t);
        t += x[i];
        if(t<min)
            min = t;
    }
    printf("%d\n",min-2);
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 376KB, 提交时间: 2018-08-24

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int x[n],y[n];
    int i=0;
    for(i=0;i<n;i++)
    {
        scanf("%d",&x[i]);
    }
    int j=0;
    for(j=0;j<n;j++)
    {
        scanf("%d",&y[j]);
    }
    int minpath=(x[0]-1)+(y[0]-1);
    for( int i=1;i<n;i++)
    {
        int min=(x[i]-1)+(y[i]-1);
        if(minpath>min)
            minpath=min;
    }
    printf("%d",minpath);
}

上一题