Odpowiedź :
Odpowiedź:
#include <bits/stdc++.h>
using namespace std;
int main()
{
const int n = 20;
int tab[n],MIN;
vector<pair<int,int>>Pary;
int i;
for(i = 0;i < n;i++)
cin>>tab[i];
cout<<"Wpisane liczby: ";
for(i = 0;i < n;i++)
cout<<tab[i]<<" ";
cout<<endl;
sort(tab,tab + n);
MIN = tab[1] - tab[0];
Pary.push_back(make_pair(tab[0],tab[1]));
for(i = 2;i < n;i++)
if(tab[i] - tab[i-1] < MIN)
{
Pary.clear();
MIN = tab[i] - tab[i-1];
Pary.push_back(make_pair(tab[i-1],tab[i]));
}
else if(tab[i] - tab[i-1] == MIN)
Pary.push_back(make_pair(tab[i-1],tab[i]));
cout<<"Najmniejsza roznica to "<<MIN<<endl;
cout<<"Pary o najmniejszej roznicy to:"<<endl;
for(i = 0;i < Pary.size();i++)
cout<<Pary[i].first<<" i "<<Pary[i].second<<endl;
return 0;
}
Wyjaśnienie:
W zadaniu nie ma informacji, że chodzi o pary kolejnych liczb więc program wyszukuje taką kombinację liczb, która tworzy parę o najmniejszej różnicy. Jeśli jest kilka par o takiej samej, najmniejszej, różnicy to wszytkie takie pary zostaną wypisane.