Cod sursa(job #2306574)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 22 decembrie 2018 16:16:55
Problema Statistici de ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include<fstream>
using namespace std;
#define N 3000001
int a[N],n,k,i;
int P(int a[],int i,int j)
{
	int s=i-1,t=j+1,p=a[i];
	while(1)
	{
		for(;a[s]<p;s++);
		for(;a[t]>p;t--);
		if(s<t)
			a[s]^=a[t]^=a[s]^=a[t];
		else 
			return t;
	}
	return 0;
}
void S(int a[],int i,int j,int k)
{
	if(i==j)
		return;
	int q=P(a,i,j);
	int t=q-i+1;
	t>=k?S(a,i,q,k):S(a,q+1,j,k-t);
}
int main()
{
	ifstream f("sdo.in");
	ofstream g("sdo.out");
	for(f>>n>>k,i=1;i<=n;i++)
		f>>a[i];
	S(a,1,n,k),g<<a[k];
}