Cod sursa(job #2276959)

Utilizator cameliapatileaPatilea Catalina Camelia cameliapatilea Data 5 noiembrie 2018 17:30:13
Problema Statistici de ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
// Simple C++ program to find k'th smallest element 
#include<iostream>
#include<algorithm>
#include<fstream>

using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int arr[100];
void qs(int i, int j)
{

    int s,d,m,aux;
    s=i;
    d=j;
    m=arr[(i+j)/2];
    while(s<=d)
    {
        while(arr[s]<m) s++;
        while(arr[d]>m) d--;
        if(s<=d)
        {
            aux=arr[s];
            arr[s]=arr[d];
            arr[d]=aux;
            s++;
            d--;
        }

    }
    if(i<d) qs(i,d);
    if(j>s) qs(s,j);
}
// Function to return k'th smallest element in a given array 
int kthSmallest(int arr[], int n, int k)
{
    // Sort the given array
    qs(1 , n);

    // Return k'th element in the sorted array
    return arr[k];
}

// Driver program to test above methods 
int main()
{
    int n, k, x;
    f >> n >> k;
    for(x=1;x<=n; x++)
        f >> arr[x];
    //int arr[] = {12, 3, 5, 7, 19};
    //int n = sizeof(arr)/sizeof(arr[0]), k = 2;
    g << "K'th smallest element is " << kthSmallest(arr, n, k);
    return 0;
}