Reconnaissance 2(水题)

来源:互联网 发布:云视通摄像头扫描软件 编辑:程序博客网 时间:2024/06/02 02:38

Reconnaissance 2
Crawling in process...Crawling failedTime Limit:2000MS    Memory Limit:262144KB     64bit IO Format:%I64d & %I64u
SubmitStatus

Description

n soldiers stand in a circle. For each soldier his heightai is known. A reconnaissance unit can be made of such twoneighbouring soldiers, whose heights difference is minimal, i.e.|ai - aj| is minimal. So each of them will be less noticeable with the other. Output any pair of soldiers that can form a reconnaissance unit.

Input

The first line contains integer n (2 ≤ n ≤ 100) — amount of soldiers. Then follow the heights of the soldiers in their order in the circle —n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 1000). The soldier heights are given in clockwise or counterclockwise direction.

Output

Output two integers — indexes of neighbouring soldiers, who should form a reconnaissance unit. If there are many optimum solutions, output any of them. Remember, that the soldiers stand in a circle.

Sample Input

Input
510 12 13 15 10
Output
5 1
Input
410 20 30 40
Output
1 2

题意:n个士兵站成一个圈,求相邻差值最小的两个士兵的位置。

ps:因为数据很小,所以可以直接遍历,但是要注意手尾要单独计算


#include <stdio.h>#include <math.h>#include <string.h>#include <stdlib.h>#define inf 999999int a[1010];int main(){    int n,i,j;    int min;    while(~scanf("%d",&n))    {        min=inf;        scanf("%d",&a[1]);        for(i=2;i<=n;i++)        {            scanf("%d",&a[i]);            if(fabs(a[i]-a[i-1])<min)            {                min=fabs(a[i]-a[i-1]);                j=i;//j记录位置;            }        }        if(fabs(a[n]-a[1])<min)//首尾的单独计算            printf("%d 1\n",n);        else            printf("%d %d\n",j-1,j);    }    return 0;}



0 0