Pagini recente » Cod sursa (job #2424478) | Cod sursa (job #805080) | Cod sursa (job #1468817) | Cod sursa (job #2555182) | Cod sursa (job #2554730)
#include <fstream>
using namespace std;
ifstream f ("sdo.in");
ofstream g ("sdo.out");
int n, i, poz;
int v[3000005], aux[3000005];
void mergesort (int st, int dr)
{
if (st < dr)
{
int mij = (st + dr) / 2;
mergesort(st, mij);
mergesort(mij+1, dr);
int i = st, j = mij+1, k = 0;
while (i <= mij && j <= dr)
{
if (v[i] < v[j])
{
k ++, aux[k] = v[i];
i ++;
}
else {
k ++, aux[k] = v[j];
j ++;
}
}
while (i <= mij)
{
k ++, aux[k] = v[i];
i ++;
}
while (j <= dr)
{
k ++, aux[k] = v[j];
j ++;
}
for (i=st, j=1; i<=dr; i++, j++)
v[i] = aux[j];
}
}
int main()
{
f >> n >> poz;
for (i=1; i<=n; i++)
f >> v[i];
mergesort(1, n);
g << v[poz];
return 0;
}