Pagini recente » Istoria paginii utilizator/i04n | Istoria paginii utilizator/biskis | Istoria paginii utilizator/cami | Atasamentele paginii Profil crisan_007 | Cod sursa (job #2002056)
#include <cstdio>
#include <bitset>
using namespace std;
const int NMAX = 105;
const int N = 300000005;
int v[NMAX];
bitset <N> vf;
int main()
{
int n, s, i, j, k, i2, j2, k2;
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d", &n, &s);
for(i = 1;i <= n; ++i) {
scanf("%d", &v[i]);
}
for(i = 1;i <= n; ++i) {
for(j = i;j <= n; ++j) {
for(k = j;k <= n; ++k) {
vf[v[i] + v[j] + v[k]] = 1;
}
}
}
for(i = 1;i <= n; ++i) {
for(j = i;j <= n; ++j) {
for(k = j;k <= n; ++k) {
int sum = v[i] + v[j] + v[k];
int dif = s - sum;
if(dif > 0 && dif <= N - 5 && vf[dif]) {
printf("%d %d %d ", v[i], v[j], v[k]);
for(i2 = 1;i2 <= n; ++i2) {
for(j2 = i2;j2 <= n; ++j2) {
for(k2 = j2;k2 <= n; ++k2) {
int sum2 = v[i2] + v[j2] + v[k2];
if(sum2 == dif) {
printf("%d %d %d\n", v[i2], v[j2], v[k2]);
return 0;
}
}
}
}
}
}
}
}
printf("-1\n");
return 0;
}