Pagini recente » Cod sursa (job #1233102) | Cod sursa (job #3178585) | Cod sursa (job #2190709) | Cod sursa (job #1545018) | Cod sursa (job #1744719)
#include <fstream>
#include <algorithm>
#define NR 105
#define VAL 1000005
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int N, S, i, M, ans, x, y;
int v[NR], j, k, s[VAL], b;
bool ok1, ok2;
int main()
{
fin >> N >> S;
for (i=1; i<=N; i++)
fin >> v[i];
for (i=1; i<=N; i++)
for (j=1; j<=N; j++)
for (k=1; k<=N; k++)
s[++M]=v[i]+v[j]+v[k];
sort(s+1, s+M+1);
for (i=1; i<=M; i++)
{
if (binary_search(s+1, s+M+1, S-s[i])==1)
{
x=s[i];
y=S-s[i];
break;
}
}
if (x==0)
fout << -1 << '\n';
else
{
for (i=1; i<=N; i++)
{
for (j=1; j<=N; j++)
{
for (k=1; k<=N; k++)
{
ans=v[i]+v[j]+v[k];
if (ans==x && ok1==false)
{
ok1=true;
fout << v[i] << " " << v[j] << " " << v[k] << " ";
}
if (ok1==true && ok2==true)
break;
if (ans==y && ok2==false)
{
ok2=true;
fout << v[i] << " " << v[j] << " " << v[k] << " ";
}
if (ok1==true && ok2==true)
break;
}
if (ok1==true && ok2==true)
break;
}
if (ok1==true && ok2==true)
break;
}
}
fin.close();
fout.close();
return 0;
}