Cod sursa(job #1555716)
Utilizator | Mustea Iulia-Otilia iuliaotilia26 | Data | 23 decembrie 2015 14:50:28 |
---|---|---|---|
Problema | Statistici de ordine | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.86 kb |
#include <fstream>
using namespace std;
int v[3000000];
int main()
{
int i,n,k,j,m,aux,p,q;
ifstream f("sdo.in");
ofstream g("sdo.out");
f>>n>>k;
for(i=1; i<=n; i++)
f>>v[i];
i=1;
j=n;
while(i<j)
{
p=i;
q=j;
m=v[(i+j)/2];
while(p<=q)
{
while(v[p]<m)p++;
while(v[q]>m)q--;
if(p<=q)
{
aux=v[p];
v[p]=v[q];
v[q]=aux;
p++;
q--;
}
}
if(k<=q)j=q;
else if(k>=p)i=p;
else
{
i=k;
j=k;
}
}
g<<v[k];
f.close();
g.close();
return 0;
}