Pagini recente » Monitorul de evaluare | Cod sursa (job #1260132) | Cod sursa (job #2175465) | Cod sursa (job #2047338) | Cod sursa (job #3337456)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("sdo.in");
ofstream out ("sdo.out");
const int NMAX = 1e6;
int v[3*NMAX+5], w[3*NMAX+5];
void interclasare (int st, int dr, int mij)
{
int i = st;
int j = mij + 1;
int k = st - 1;
while (i <= mij && j <= dr)
if (v[i] < v[j])
w[++k] = v[i++];
else
w[++k] = v[j++];
for (; i <= mij; i++)
w[++k] = v[i];
for (; j <= dr; j++)
w[++k] = v[j];
for (i = st; i <= dr; i++)
v[i] = w[i];
}
void sortare (int st, int dr)
{
if (st < dr)
{
int mij = st + (dr - st)/2;
sortare (st, mij);
sortare (mij + 1, dr);
interclasare (st, dr, mij);
}
}
int main ()
{
int n, k;
in >> n >> k;
for (int i = 1; i <= n; i++)
in >> v[i];
sortare (1, n);
out << v[k];
return 0;
}