#include #include #include #include #include #include #include void quickSort( int a[], int l, int r) { int j; if( l < r ) { // divide and conquer j = partition( a, l, r); quickSort( a, l, j-1); quickSort( a, j+1, r); } } int partition( int a[], int l, int r) { int pivot, i, j, t; pivot = a[l]; i = l; j = r+1; while( 1) { do ++i; while( a[i] <= pivot && i <= r ); do --j; while( a[j] > pivot ); if( i >= j ) break; t = a[i]; a[i] = a[j]; a[j] = t; } t = a[l]; a[l] = a[j]; a[j] = t; return j; } int absolute(int n, int a[n]){ int i, j; int smallest = abs(a[0] - a[1]); for(i = 0; i < n-1; i++){ int result = abs(a[i] - a[i+1]); if(result < smallest){ smallest = result; } if(smallest == 0){ break; } } printf("%d", smallest); return 0; } int main(){ int n; scanf("%d",&n); int *a = malloc(sizeof(int) * n); for(int a_i = 0; a_i < n; a_i++){ scanf("%d",&a[a_i]); } quickSort(a, 0, n-1); absolute(n, a); return 0; }