fbpx

Problema #567 – Pereche – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

n elevi numerotați de la 1 la n stau în cerc, astfel încât elevul 1 și elevul n sunt vecini. Pentru fiecare elev se cunoaște înălțimea. O pereche de elevi învecinați este pereche potrivită dacă diferența dintre înălțimile elevilor este minimă. Determinați o pereche potrivită.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n înălțimi ale elevilor, în ordine.

Date de ieșire

Programul va afișa pe ecran numerele de ordine i j, separate prin exact un spatiu, a elevilor care formează o pereche potrivită.

Restricții și precizări

  • 2 ≤ n ≤ 1000
  • cele n numere citite vor fi mai mici decât 1.000
  • dacă există mai multe perechi potrivite, se poate afișa oricare

Exemplu

Intrare

5
4 6 3 5 3

Ieșire

1 5
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int a[1002];
    int n;
    cin >> n;
    for(int i = 0 ; i < n ; ++i)
        cin >> a[i];
    a[n]=a[0];
    n++;
    int st = 0 , dr = 0 , min=1001;
    for(int i = 1 ; i < n ; ++i)
    {
        if(a[i]>a[i-1])
        {
            if(a[i]-a[i-1] < min)
                min = a[i]-a[i-1] , st = i-1 , dr = i;
        }
        else
        {
            if(a[i-1]-a[i] < min)
                min = a[i-1]-a[i] , st = i-1 , dr = i;
        }
    }
    if(dr==n-1)
        st = 0 , dr = n-2;
    cout << st + 1 << ' ' << dr + 1;
    return 0;
}
Comentarii

S-ar putea sa iti placa