Pagini recente » Cod sursa (job #96099) | Cod sursa (job #134326) | Cod sursa (job #2737586) | Cod sursa (job #86009) | Cod sursa (job #1322036)
#include<stdio.h>
#include<unordered_set>
#include<algorithm>
using namespace std;
#define nmax 101
unordered_set<int>h;
int v[nmax],n,s,g;
void citire()
{
scanf("%d%d",&n,&s);
for(int i=1;i<=n;++i) scanf("%d",&v[i]);
}
void solve()
{
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=1;k<=n;++k)
if (h.find(v[i] + v[j] + v[k]) == h.end())
{
h.insert(v[i] + v[j] + v[k]);
}
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
for(int k=1;k<=n;++k)
{
if (h.find(s - (v[i] + v[j] + v[k])) != h.end())
{
printf("%d %d %d ",v[i],v[j],v[k]);
s -= v[i] + v[j] + v[k];
g = 1;
break;
}
}
if(g) break;
}
if(g) break;
}
if(!g) printf("-1");
else
{
g=0;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
for(int k=1;k<=n;++k)
if (v[i] + v[j] + v[k] == s)
{
printf("%d %d %d",v[i],v[j],v[k]);
s -= v[i] + v[j] + v[k];
g = 1;
break;
}
if(g) break;
}
if(g) break;
}
}
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
citire();
solve();
}