👤

#567 de pe pbinfo va rog:
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


Răspuns :

#include <iostream>

using namespace std;

short vec[1001];

short abs(short x){return x < 0? -x : x;}

int main()

{

short n;

cin >> n;

for(short i = 1; i<=n;i++)

cin >> vec[i];

vec[0]= vec[n];

short difmin = -1, difi, difj;

for(short i = 1; i <= n; i++)

{

short dif=abs(vec[i]-vec[i-1]);

if(difmin == -1 || dif < difmin)

{

difmin = dif;

difi = i;

difj = (i==1?n:i-1);

}

}

cout << (difi<difj ? difi: difj) << " " << (difi>difj ? difi: difj);

}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!


ID Learners: Alte intrebari