Pagini recente » Istoria paginii utilizator/breanna574 | Cod sursa (job #981306) | Istoria paginii runda/noobmania1/clasament | Istoria paginii runda/numere9/clasament | Cod sursa (job #1035629)
#include <iostream>
#include <vector>
#include <ext/hash_set>
#include <fstream>
#include <cstdio>
using namespace std;
ifstream f ("loto.in");
ofstream g ("loto.out");
__gnu_cxx::hash_set <int> H;
int n,S,aux[101];
vector <int> sol;
int main()
{
int i,j,k,s;
long S;
f>>n>>S;
for (i=1;i<=n;i++)
f>>aux[i];
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
{
s=aux[i]+aux[j]+aux[k];
if (s<S)
H.insert(s);
}
s=-1;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
{
s=aux[i]+aux[j]+aux[k];
if (H.find(S-s)!=H.end())
{
sol.push_back(aux[i]);
sol.push_back(aux[j]);
sol.push_back(aux[k]);
S-=s;
i=j=k=n+1;
}
}
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
{
s=aux[i]+aux[j]+aux[k];
if (S==s)
{
g<<aux[i]<<' '<<aux[j]<<' '<<aux[k];
for (vector<int>::iterator it=sol.begin();it!=sol.end();++it)
g<<*it<<' ';f.close();g.close();
return 0;
}
}
g<<-1;
f.close();g.close();
return 0;
}