Cod sursa(job #1883568)

Utilizator asavu16Andrei Savu asavu16 Data 18 februarie 2017 09:05:58
Problema Statistici de ordine Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>

using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int a[100000],i,n,st,dr,j,k;
int Part(int st, int dr)
{
    int p,j;
    j=st-1;
    p=a[dr];
    for(i=st; i<=dr; ++i)
        if(a[i]<=p)swap(a[++j],a[i]);
    return j;
}
int main()
{
    f>>n>>k;
    for(i=1; i<=n; ++i)
        f>>a[i];
     st=1; dr=n;
    while(j!=k)
    {j=Part(st,dr);
        if(j>k)dr=j-1;
        else if(j>k)st=j+1;
        else if(j==k){g<<a[j];break;}
    }
    return 0;
}