Cod sursa(job #3364062)
| Utilizator | Data | 28 august 2026 20:04:20 | |
|---|---|---|---|
| Problema | Statistici de ordine | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int v[3000001],k;
int poz(int st, int dr)
{
int m=(st+dr)/2;
int aux=v[st];
v[st]=v[m];
v[m]=aux;
int i=st,j=dr,d=0;
while(i<j)
{
if(v[i]>v[j])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
d=1-d;
}
i+=d;
j-=(1-d);
}
if(i==k)return v[i];
if(i<k)return poz(i+1,dr);
return poz(st,i-1);
}
int main()
{
int n;
f>>n>>k;
for(int i=1;i<=n;i++)f>>v[i];
g<<poz(1,n)<<'\n';
}
