Cod sursa(job #3327677)

Utilizator Emre12Isleam Emre Emre12 Data 4 decembrie 2025 19:12:30
Problema Statistici de ordine Scor 20
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <stdio.h>
#include <stdlib.h>
#define MAXN 3000000
int v[MAXN];
int hoare(int st, int dr, int k) {
    int b = st,e = dr,mij = v[(st + dr)/2];
    int aux;
    while (b < e) {
        while (v[b] < mij) b++;
        while (v[e] > mij) e--;
        if (b >= e) break;
        aux = v[b];
        v[b] = v[e];
        v[e] = aux;
        b++;
        e--;
    }
    if(st >= dr)
      return v[st];
    if(k > e)
      return hoare(e+1,dr,k);
    return hoare(st,e,k);
}
int main()
{
  FILE*fin;
  FILE*fout;
  fin = fopen("sdo.in","r");
  fout = fopen("sdo.out","w");
  int n,a,k;
  fscanf(fin,"%d%d",&n,&k);
  for(int i = 0; i < n;fscanf(fin,"%d",&v[i++]));
  a = hoare(0,n-1,k);
  fprintf(fout,"%d",a);
  return 0;
}