Pagini recente » Cod sursa (job #2456793) | Cod sursa (job #3257268) | Cod sursa (job #148705) | Cod sursa (job #1142649) | Cod sursa (job #1679880)
#include <cstdio>
#include<algorithm>
#include<vector>
#define MOD 1000003
#define MAX 100
using namespace std;
struct aa{
int x, y, z, s;
};
vector<aa>hash[MOD];
int v[MAX+1], n;
inline void insert(int a, int i, int j, int k)
{
aa curent;
curent.s=a;
curent.x=i;
curent.y=j;
curent.z=k;
hash[a%MOD].push_back(curent);
}
inline int search(int a)
{
int i=0, poz=-1, f=0;
while(!hash[a%MOD].empty()&&i<hash[a%MOD].size()&&(!(f))){
if(hash[a%MOD][i].s==a)
{
f=1;
poz=i;
}
i++;
}
return poz;
}
int main()
{
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
int i, j, k, sum, a, poz;
scanf("%d%d", &n, &sum);
for(i=1;i<=n;i++)
scanf("%d", &v[i]);
sort(v+1, v+n+1);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
if(v[i]+v[j]+v[k]<sum)
{
insert(v[i]+v[j]+v[k], i, j, k);
a=sum-(v[i]+v[j]+v[k]);
poz=search(a);
if(poz!=-1)
{
printf("%d %d %d %d %d %d", v[i], v[j], v[k], hash[a%MOD][poz].x, hash[a%MOD][poz].y, hash[a%MOD][poz].z);
return 0;
}
}
printf("-1");
return 0;
}