Pagini recente » Cod sursa (job #2904758) | Cod sursa (job #275775) | Cod sursa (job #1788935) | Cod sursa (job #1777684) | Cod sursa (job #2197976)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,s,v[101],i,j,k,nr,d,st,dr;
struct numar{
int s,a,b,c;
}sum[10000000];
int cmp(numar x, numar y){
return x.s<y.s;
}
int main()
{
fin>>n>>s;
for(i=1;i<=n;i++)
fin>>v[i];
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++){
nr++;
sum[nr].s=v[i]+v[j]+v[k];
sum[nr].a=v[i];
sum[nr].b=v[j];
sum[nr].c=v[k];
}
sort(sum+1,sum+nr+1,cmp);
for(i=1;i<=nr;i++){
d=s-sum[i].s;
st=i;
dr=nr;
while(st<=dr){
int mij=(st+dr)/2;
if(d==sum[mij].s){
fout<<sum[i].a<<" "<<sum[i].b<<" "<<sum[i].c<<" "<<sum[mij].a<<" "<<sum[mij].b<<" "<<sum[mij].c;
return 0;
}
else{
if(d<sum[mij].s)
dr=mij-1;
else
st=mij+1;
}
}
}
fout<<-1;
return 0;
}