Pagini recente » Cod sursa (job #633060) | Cod sursa (job #1521912) | Cod sursa (job #407728) | Cod sursa (job #1753450) | Cod sursa (job #813318)
Cod sursa(job #813318)
#include<cstdio>
#include<algorithm>
using namespace std;
#define Nmax 101
int V[Nmax], N, M, S;
struct bla {
int i, j, k, sum;
} A[Nmax * Nmax * Nmax];
bool cmp(bla a, bla b) {
return a.sum < b.sum;
}
int main() {
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int i, j, k, st, dr, mij, sum;
scanf("%d %d",&N,&S);
for(i=1; i<=N; i++)
scanf("%d",&V[i]);
sort(V+1, V+N+1);
for(i=1; i<=N; i++)
for(j=1; j<=N; j++)
for(k=1; k<=N; k++) {
A[++M].sum = V[i] + V[j] + V[k];
A[M].i = V[i];
A[M].j = V[j];
A[M].k = V[k];
}
//sort(A+1,A+M+1,cmp);
for(i=1; i<=M; i++) {
sum = S - A[i].sum;
st = 1; dr = M;
while(st<=dr) {
mij = (st+dr)/2;
if(A[mij].sum == sum) {
printf("%d %d %d %d %d %d\n",A[i].i, A[i].j, A[i].k, A[mij].i, A[mij].j, A[mij].k);
return 0;
}
if(A[mij].sum < sum)
st = mij + 1;
else
dr = mij - 1;
}
}
printf("-1\n");
return 0;
}