#include using namespace std; void merge(vector& array, vector& array1, vector& array2) { array.clear(); int i, j, k; for( i = 0, j = 0, k = 0; i < array1.size() && j < array2.size(); k++){ if(array1.at(i) <= array2.at(j)){ array.push_back(array1.at(i)); i++; }else if(array1.at(i) > array2.at(j)){ array.push_back(array2.at(j)); j++; } k++; } while(i < array1.size()){ array.push_back(array1.at(i)); i++; } while(j < array2.size()){ array.push_back(array2.at(j)); j++; } } void merge_sort(std::vector& array) { if (1 < array.size()) { std::vector array1(array.begin(), array.begin() + array.size() / 2); merge_sort(array1); std::vector array2(array.begin() + array.size() / 2, array.end()); merge_sort(array2); merge(array, array1, array2); } } int main(){ int n; cin >> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } // your code goes here merge_sort(a); /* int minDist = a[1] - a[0]; if(minDist < 0) minDist *= -1; for(int j = 0; j < n; j++) { int min = a[j]; int minInd = j; for(int i = j; i < n; i++) { if(a[i] < min) { min = a[i]; minInd = i; } } int temp = a[j]; a[j] = a[minInd]; a[minInd] = temp; //cout << a[j] - a[j - 1] << endl; if(j > 0 && a[j] - a[j - 1] < minDist) minDist = a[j] - a[j - 1]; } */ int min = a[1] - a[0]; for(int i = 0; i < n - 1; i++) { if(a[i + 1] - a[i] < min) min = a[i + 1] - a[i]; } /* int min = a[1] - a[0]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(a[i] - a[j] < min) min = a[i] - a[j]; } } */ cout << min << endl; return 0; }