Cod sursa(job #972238)

Utilizator miu_mik93FMI - Paduraru Miruna miu_mik93 Data 11 iulie 2013 12:33:07
Problema Statistici de ordine Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
#define NMax 50000
int N;
long long int M[NMax];
#define INF   100000000000000000LL
#define Min(a, b) ((a) < (b) ? (a) : (b))
int best[NMax/10][NMax/10];
void sortare(int li, int ls)
{
	if (li < ls)
	{
		int m = (li + ls) / 2;
		sortare(li, m);
		sortare(m+1, ls);
		int k=0, v[NMax], i = li, j = m+1;
		while (i <= m && j <= ls)
		{
			if (M[i] < M[j])
				v[++k] = M[i++];
			else
				v[++k] = M[j++];
		}
		while (i <= m)
		{
			v[++k] = M[i++];
		}
		while (j <= ls)
		{
			v[++k] = M[j++];
		}
		for (int i = li; i <= ls; i++)
			M[i] = v[i-li + 1];
	}
}
int main()
{
	FILE *f = fopen("sdo.in", "r");
	FILE *g = fopen("sdo.out", "w");
	int k;
	fscanf(f, "%d %d", &N, &k);
	for (int i=1; i<=N; i++)
		fscanf(f, "%lld", &M[i]);
	sortare(1, N);
	fprintf(g, "%lld", M[k]);
	fclose(f);
	fclose(g);
 	return 0;
}