Cod sursa(job #757086)

Utilizator FlameingoAiordachioaei Marius Flameingo Data 10 iunie 2012 23:34:10
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<cstdio>
using namespace std;
int v[101],v2[101],aux[101],vt[7];
void sortare(int l,int r)
{
	if(l==r)return;
	int m=(l+r)>>1,i=l,j=m+1,k=l;
	sortare(l,m);sortare(m+1,r);
	while(i<=m||j<=r)
		if(r<j||i<=m&&v[i]<v[j])
			aux[k++]=v[i++];
		else
			aux[k++]=v[j++];
	for(;l<=r;l++)
		v[l]=aux[l];
}
int main()
{
	freopen("loto.in","r",stdin);freopen("loto.out","w",stdout);
	int n,s,i,j=6,s2=0;
	scanf("%d%d",&n,&s);aux[0]=s;
	for(i=1;i<=n;i++)
		scanf("%d",&v[i]);
	sortare(1,n);v2[1]=v[1];
	for(i=2;i<=n;i++)
		v2[i]=v2[i-1]+v[i];
	for(i=n;i>=1&&j>=1;)
		if(s>=v2[i])
			vt[j--]=v[i],s-=v[i],s2+=v[i];
		else
			vt[j--]=v[--i],s-=v[i],s2+=v[i];
	if(s2==aux[0])
		for(i=1;i<=6;i++)
			printf("%d ",vt[i]);
	else
		printf("-1");
}