Nu aveti permisiuni pentru a descarca fisierul grader_test9.ok
Cod sursa(job #1086976)
Utilizator | Data | 18 ianuarie 2014 19:24:08 | |
---|---|---|---|
Problema | Statistici de ordine | Scor | 40 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.88 kb |
//
// main.c
// quickSortLomuto
//
// Created by Alexandru Bâgu on 1/18/14.
// Copyright (c) 2014 Alexandru Bâgu. All rights reserved.
//
#include <stdio.h>
int swap(int *a, int *b)
{
int aux = *a;
*a = *b;
*b = aux;
return 0;
}
int qsort(int *v, int left, int right)
{
if(left >= right) return 0;
int piv = v[right], px = left - 1, py = left;
while(py <= right)
if(v[py++] <= piv)
swap(v + py - 1, v + ++px);
if(px >= right) px--;
qsort(v, left, px - 1);
qsort(v, px + 1, right);
return 0;
}
int main(int argc, const char * argv[])
{
freopen("sdo.in", "r", stdin);
freopen("sdo.out", "w", stdout);
int n, i, q;
scanf("%d", &n);
scanf("%d", &q);
int *v = (int*)malloc(n * sizeof(int));
for(i = 0; i < n; i++)
scanf("%d", v + i);
qsort(v, 0, n - 1);
printf("%d ", v[q-1]);
return 0;
}