Pagini recente » Cod sursa (job #518563) | Cod sursa (job #2268303) | Cod sursa (job #1261689) | Cod sursa (job #1882658) | Cod sursa (job #642592)
Cod sursa(job #642592)
#include <cstdio>
#include <algorithm>
#include <cstdlib>
using namespace std;
#define file_in "loto.in"
#define file_out "loto.out"
struct loto{
int suma;
int i;
int j;
int k;
};
loto q[101*101*101];
int N,nr,i,j,k,S;
int V[111],X;
int cmp(loto a, loto b){
return (a.suma<b.suma);
}
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &N, &S);
for (i=1;i<=N;++i)
scanf("%d", &V[i]);
nr=0;
for (i=1;i<=N;++i)
for (j=1;j<=N;++j)
for (k=1;k<=N;++k){
q[++nr].suma=V[i]+V[j]+V[k];
q[nr].i=i;
q[nr].j=j;
q[nr].k=k;
}
sort(q+1,q+nr+1,cmp);
for (i=1;i<=nr;++i){
// for (j=1;j<=N;++j)
// for (k=1;k<=N;++k) {
// X=S-V[i]-V[j]-V[k];
X=S-q[i].suma;
int ls=1;
int ld=nr+1;
while(ls<=ld){
int mij=(ls+ld)/2;
if (q[mij].suma==X){
printf("%d %d %d %d %d %d\n", V[q[mij].i],V[q[mij].j],V[q[mij].k],q[i].i,q[i].j,q[i].k);
exit(0);
}
else
if (q[mij].suma>X)
ld=mij-1;
else
ls=mij+1;
}
}
printf("-1\n");
return 0;
}