Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void swap(int *a, int *b)
- {
- int temp;
- temp=*a;
- *a=*b;
- *b=temp;
- }
- int partition(int arr[], int first, int last)
- {
- int pivot = arr[last];
- int low = first;
- int i = first;
- while(i <= last-1 ){
- if(arr[i] < pivot){
- swap(&arr[i], &arr[low]);
- low++;
- }
- i++;
- }
- swap(&arr[last], &arr[low]);
- return low;
- }
- void quick_sort(int arr[], int first, int last)
- {
- int pivot_pos;
- if(first < last){
- pivot_pos = partition(arr, first, last);
- quick_sort(arr, first, pivot_pos-1);
- quick_sort(arr, pivot_pos+1, last);
- }
- }
- int funcao_comparacao (const void * a, const void * b) {
- return ( *(int*)a - *(int*)b );
- }
- int main()
- {
- int num_predios, num_vendas;
- // int distancias[100000];
- scanf("%d %d", &num_predios, &num_vendas);
- int* distancias;
- distancias = (int*) malloc(num_predios * sizeof(int));
- int num_predios_apos_venda = num_predios - num_vendas;
- for (int i = 0; i < num_predios; i++)
- {
- scanf("%d", &distancias[i]);
- }
- quick_sort(distancias,0,num_predios-1);
- // qsort(distancias, num_predios, sizeof(int), funcao_comparacao);
- int menor_distancia = 999999999;
- for (int i = 0; i + num_predios_apos_venda <= num_predios; i++)
- {
- if (distancias[i + num_predios_apos_venda - 1] - distancias[i] < menor_distancia)
- {
- menor_distancia = distancias[i + num_predios_apos_venda - 1] - distancias[i];
- }
- }
- printf("%d\n", menor_distancia);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement