#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ăspunsuri la întrebare
Răspuns de
2
#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);
}
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);
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Chimie,
8 ani în urmă
Limba română,
8 ani în urmă
Informatică,
8 ani în urmă
Religie,
9 ani în urmă
Matematică,
9 ani în urmă
Franceza,
9 ani în urmă