Pagini recente » Cod sursa (job #2938526) | Cod sursa (job #2230391) | Cod sursa (job #3040395) | Cod sursa (job #865322) | Cod sursa (job #3004042)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("loto.in");
ofstream fout("loto.out");
int v[101],nw,n,S;
struct stuff{
int x; int m;
bool operator< (const stuff& b) const { return x < b.x; }
} w[101*101*101];
int main()
{
fin >> n >> S;
for (int i=0; i<n; i++) {
fin >> v[i];
}
for (int i=0; i<n; i++)
for (int j=i; j<n; j++)
for (int k=j; k<n; k++)
w[nw++] = { v[i]+v[j]+v[k], i*10000+j*100+k };
sort(&w[0], &w[nw]);
for (int i=0; i<nw; i++)
{
int st=0, dr=nw-1;
while (st<=dr)
{
int m=(st+dr)/2;
int s = w[i].x + w[m].x;
if (s == S)
{
int x[6];
x[0] = w[i].m % 100;
x[1] = w[i].m / 100 % 100;
x[2] = w[i].m / 10000 % 100;
x[3] = w[m].m % 100;
x[4] = w[m].m / 100 % 100;
x[5] = w[m].m / 10000 % 100;
sort(&x[0], &x[6]);
for (int i=0; i<6; i++)
fout << v[x[i]] << ' ';
return 0;
}
if (s < S)
st = m+1;
else
dr = m-1;
}
}
fout << -1;
return 0;
}