Pagini recente » Cod sursa (job #1447837) | Cod sursa (job #1818973) | Cod sursa (job #1889775) | Cod sursa (job #2408339) | Cod sursa (job #1744426)
#include <fstream>
#include <algorithm>
#define NR 105
#define VAL 1000005
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct suma
{
int sum;
int a;
int b;
int c;
};
suma s[VAL];
int N, S, i, M, ans;
int v[NR], j, k, x[VAL];
bool cmp(suma x, suma y)
{
return x.sum<y.sum;
}
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].sum=v[i]+v[j]+v[k];
s[M].a=v[i];
s[M].b=v[j];
s[M].c=v[k];
}
}
}
sort(s+1, s+M+1, cmp);
for (i=1; i<=M; i++)
x[i]=s[i].sum;
for (i=1; i<=M; i++)
{
ans=binary_search(x+1, x+M+1, S-x[i]);
if (ans!=0)
{
ans=S-x[i];
fout << s[i].a << " " << s[i].b << " " << s[i].c << " ";
break;
}
}
for (i=1; i<=M; i++)
{
if (ans==s[i].sum)
{
fout << s[i].a << " " << s[i].b << " " << s[i].c << '\n';
break;
}
}
if (ans==0)
fout << -1 << '\n';
fin.close();
fout.close();
return 0;
}