Pagini recente » Cod sursa (job #2723345) | Borderou de evaluare (job #1488894) | Cod sursa (job #2471760) | Cod sursa (job #1691314) | Cod sursa (job #1315344)
#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;
}