Cod sursa(job #219098)

Utilizator mihai0110Bivol Mihai mihai0110 Data 5 noiembrie 2008 13:25:33
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<stdio.h>
#include<algorithm>

using namespace std;

long i,j,k,n,S,nr;
long a[101],p1[1000000],p2[1000000],p3[1000000],s[1000000],ind[1000000];

bool comp(const int &a,const int &b)
{
    return s[ind[a]]<s[ind[b]];
}

int main(void)
{
	freopen("loto.in","r",stdin);
	freopen("loto.out","w",stdout);
	scanf("%ld%ld",&n,&S);
	for(i=1;i<=n;i++)
	scanf("%ld",&a[i]);
	for(i=1;i<=n;i++)
		for(j=i;j<=n;j++)
			for(k=j;k<=n;k++)
			{
			nr++;
			ind[nr]=nr;
			s[nr]=a[i]+a[j]+a[k];
			p1[nr]=i;
			p2[nr]=j;
			p3[nr]=k;
			}
	sort(ind+1,ind+nr+1,comp);
	j=nr;
	for(i=1;i<=nr;i++)
		{
		while(s[ind[j]]+s[ind[i]]>S&&j>0)
			j--;
		if(j==0)
		 break;
		else
		 if(s[ind[i]]+s[ind[j]]==S)
		 {
		 printf("%ld %ld %ld ",a[p1[ind[i]]],a[p2[ind[i]]],a[p3[ind[i]]]);
		 printf("%ld %ld %ld\n",a[p1[ind[j]]],a[p2[ind[j]]],a[p3[ind[j]]]);
		 return 0;
		 }
		}
   printf("-1\n");
   return 0;
}