Pagini recente » Cod sursa (job #2210036) | Cod sursa (job #2143132) | Cod sursa (job #2710174) | Cod sursa (job #2544247) | Cod sursa (job #612430)
Cod sursa(job #612430)
#include<stdio.h>
#include<vector>
using namespace std;
int p,q,r;
struct intz
{
int val,x,y,z;
};
vector <intz> h[666013];
int a[121];
inline void addhash(int x,int y,int z)
{
intz t;
t.val=x+y+z;
t.x=x;
t.y=y;
t.z=z;
h[t.val%666013].push_back(t);
}
inline int checkhash(int x)
{
int i,y;
y=x%666013;
i=h[y].size();
for(i--;i>=0;i--)
if(h[y][i].val==x)
{
p=h[y][i].x;
q=h[y][i].y;
r=h[y][i].z;
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 %d %d %d",a[i],a[j],a[k],p,q,r);
return 0;
}
addhash(a[i],a[j],a[k]);
}
printf("-1");
return 0;
}