Cod sursa(job #434963)

Utilizator BunicoolMoise Razvan Bunicool Data 6 aprilie 2010 19:26:20
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<cstdio>
using namespace std;
FILE *f=fopen("loto.in","r"), *g=fopen("loto.out","w");
int n,sase=6;
long s,a[100],stiva[6];
void quicksort(int lo, int hi)
{
	int i=lo,j=hi;
	long interm,m=a[(lo+hi)/2];
	do
	{
		while(a[i]<m) i++;
		while(a[j]>m) j--;
		if(i<=j)
			interm=a[i],
			a[i]=a[j],
			a[j]=interm,
			i++,
			j--;
	}while(i<=j);
	if(lo<j) quicksort(lo,j);
	if(i<hi) quicksort(i,hi);
}
void back()
{
	int i=n-1,st=0;
	while(sase && i>-1)
	{
		if(s-a[i]>=a[0]*(sase-1))
			stiva[st]=a[i],
			st++,
			s-=a[i],
			sase--;
		else i--;
	}
	if(s) fprintf(g,"-1");
	else for(i=st-1;i>-1;i--) fprintf(g,"%ld ",stiva[i]);
}
int main()
{
	fscanf(f,"%d %ld",&n,&s);
	for(int i=0;i<n;i++)
		fscanf(f,"%ld",&a[i]);
	quicksort(0,n-1);
	back();
	return 0;
}