Pagini recente » Cod sursa (job #3041389) | Cod sursa (job #2429418) | Cod sursa (job #831644) | Cod sursa (job #1837650) | Cod sursa (job #1560246)
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
const int maxx1=105,maxx2=1000007;
int n,s,i,j,k,nr,spart,val,x[maxx1],ans[7],pos[maxx2][3];
vector <int> hash[1000004];
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d %d\n",&n,&s);
for(i=1;i<=n;i++)
scanf("%d",&x[i]);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
{
pos[++nr][0]=x[i];
pos[nr][1]=x[j];
pos[nr][2]=x[k];
hash[(x[i]+x[j]+x[k])%1000003].push_back(nr);
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
{
spart=x[i]+x[j]+x[k];
if(s>spart)
{
val=(s-spart)%1000003;
if(hash[val].size())
if(pos[hash[val][0]][0]+pos[hash[val][0]][1]+pos[hash[val][0]][2]==s-spart)
{
ans[1]=x[i];
ans[2]=x[j];
ans[3]=x[k];
ans[4]=pos[hash[val][0]][0];
ans[5]=pos[hash[val][0]][1];
ans[6]=pos[hash[val][0]][2];
}
}
}
sort(ans+1,ans+7);
if(ans[1]==0)
printf("-1\n");
else
{
for(i=1;i<=6;i++)
printf("%d ",ans[i]);
printf("\n");
}
return 0;
}