Pagini recente » Cod sursa (job #2528049) | Cod sursa (job #509216) | Cod sursa (job #1163514) | Cod sursa (job #1567127) | Cod sursa (job #612437)
Cod sursa(job #612437)
#include<stdio.h>
#include<vector>
using namespace std;
vector <int> h[666019];
int a[121];
inline void addhash(int x)
{
h[x%666019].push_back(x);
}
inline int checkhash(int x)
{
int i,y;
y=x%666019;
i=h[y].size();
for(i--;i>=0;i--)
if(h[y][i]==x)
return 1;
return 0;
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int n,s,i,j,k;
scanf("%d%d",&n,&s);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
{
if(checkhash(s-a[i]-a[j]-a[k]))
{
printf("%d %d %d ",a[i],a[j],a[k]);
s-=a[i]+a[j]+a[k];
for(int p=1;p<=i;p++)
for(int q=1;q<=j;q++)
for(int r=1;r<=k;r++)
if(a[p]+a[q]+a[r]==s)
{
printf("%d %d %d",a[p],a[q],a[r]);
return 0;
}
}
addhash(a[i]+a[j]+a[k]);
}
printf("-1");
return 0;
}