#include #include #include #include //funziona con un euristica non è detto che trovi sempre l'ottimo using namespace std; const int MAX_N = 10000; int tot,n,vect[MAX_N]; /*void stampa() {for(int i = 0; i < n; i++) printf(" %d", vect[i]); } */ int cmp(const void *a,const void *b) {int primo,secondo; primo=*(int*)a; secondo=*(int*)b; if(primo>secondo) return 1; else return-1; } //prendo come differenza la più piccola void risolvi() {tot=0; int i,j; i=0; j=n-1; while(i<=j) { int a=abs(vect[i]-vect[i+1]); int b=abs(vect[j]-vect[j-1]); if( a>b ) {tot=tot+b; j=j-2; i++; } else {tot=tot+a; i=i+2; j--; } } //printf("%d \n",tot); } int main() { ifstream fin("input.txt"); fin >> n ; for(int i=0;i>vect[i]; //ordino il vettore con quicksort; qsort(vect,n,sizeof(int),cmp); //risolvo risolvi(); //stampa(); ofstream fout("output.txt"); assert(fout); fout << tot; fout.close(); return 0; }