Cod sursa(job #1315344)

Utilizator donjuanDon Juan donjuan Data 12 ianuarie 2015 19:05:52
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<cstdio>
#include<unordered_map>
using namespace std;

int x[101],n,m,s,s1max;
struct suma{
	int t1,t2,t3;
};
suma a[338355];
suma make_suma(int i,int j,int k)
{
	suma e;
	e.t1=i;e.t2=j;e.t3=k;
	return e;
}
unordered_map<int,suma> a;
int main()
{
	freopen("loto.in","r",stdin);
	freopen("loto.out","w",stdout);
	scanf("%d %d",&n,&s);
	
	for(int i=1;i<=n;++i)
		scanf("%d",&x[i]);
	
	for(int i=1;i<=n;++i)
			for(int j=i;j<=n;++j)
				for(int k=j;k<=n;++k)
				{
					int s1;
					s1=x[i]+x[j]+x[k];
					a[s1]=make_suma(i,j,k);
					if(s1>s1max)s1max=s1;
				}
	

	
	for(int i=1;i<=s1max;++i)
	{
		
		int termen=s-i;
		unordered_map<int,suma>::iterator it;
		it=a.find(termen);
		if(it!=a.end())
		{
			printf("%d %d %d %d %d %d",m[i]->t1,m[i]->t2,m[i]->t3,*it->t1,*it->t2,*it->t3);
			return 0;
		}
	}
	printf("-1");
		
	return 0;
}