Cod sursa(job #434442)

Utilizator iamdoruTanase Theodor iamdoru Data 5 aprilie 2010 22:22:57
Problema Statistici de ordine Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>
FILE *f,*g;
int n,k,v[3000001];
int pivot(int p, int u) 
	{
	int aux,sem=1;
	while(p<u) 
		{
		if(v[p]>v[u])
			{
			sem*=-1;
			aux=v[p];
			v[p]=v[u];
			v[u]=aux;
			}
		if(sem==1)
			p++;
		else 
			u--;	
		}
	return 	p;
	}
int sort(int prim, int ult) 
	{
	int w;
	w=pivot(prim,ult);
	if(w==k)
		return v[w];
	else
		if(k<w)
			 return sort(prim,w-1);
		else 
			return 	sort(w+1,ult);
	} 
int main () 
	{
int i,q;		
f=fopen("sdo.in","r");
fscanf(f,"%d%d",&n,&k);
for(i=1;i<=n;i++)
	fscanf(f,"%d",&v[i]);
fclose(f);
q=sort(1,n);
g=fopen("sdo.out","w");
fprintf(g,"%d\n",q);
fclose(g);
return 0;}