Pagini recente » Cod sursa (job #2216454) | Cod sursa (job #1636937) | Cod sursa (job #2858407) | Cod sursa (job #368126) | Cod sursa (job #1803193)
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
int v[105],sum[1000005];
int main(){
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int n,s,nr,i,ok=0,j,k,h,g;
cin>>n>>s;
for(i=0;i<n;i++)
cin>>v[i];
nr=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++)
sum[nr++]=v[i]+v[j]+v[k];
sort(sum, sum+nr);
ok=0;
for(i=0;i<nr;i++){
int st=0,dr=n-1;
while(st<dr){
int mij=(st+dr)/2;
if(s-sum[i]==sum[mij]){
break;
ok=1;
}
if(s-sum[i]<sum[mij])
st=mij-1;
if(s-sum[i]>sum[mij])
dr=mij+1;
}
if(ok==1)
break;
}
if(ok==0)
printf("-1");
else{
k=1;
for(j=0;j<n && k==1;j++){
for(h=0;h<n && k==1;h++){
for(g=0;g<n && k==1;g++)
if(sum[j]+sum[h]+sum[g]==sum[i]){
k=0;
printf("%d %d %d ", v[j], v[h], v[g]);
}
}
}
k=1;
for(j=0;j<n && k==1;j++){
for(h=0;h<n && k==1;h++){
for(g=0;g<n && k==1;g++)
if(sum[j]+sum[h]+sum[g]==s-sum[i]){
k=0;
printf("%d %d %d ", v[j], v[h], v[g]);
}
}
}
}
return 0;
}