Pagini recente » Cod sursa (job #3329806) | Cod sursa (job #914138) | Cod sursa (job #805192) | Monitorul de evaluare | Cod sursa (job #2555326)
#include <bits/stdc++.h>
using namespace std;
struct ura{
int suma,a,b,c;
};
ura v[1000001];
int numere[101];
bool cmp(ura a,ura b){
if(a.suma<b.suma)
return true;
return false;
};
int main()
{
ifstream cin("loto.in");
ofstream cout("loto.out");
int n,s,S,i,j,k,st,dr,mij,val,elem;
cin>>n>>S;
s=0;
for(i=1;i<=n;i++)
cin>>numere[i];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++){
s++;
v[s].suma=numere[i]+numere[j]+numere[k];
v[s].a=numere[i];
v[s].b=numere[j];
v[s].c=numere[k];
}
sort(v+1,v+s+1,cmp);
for(i=1;i<=s;i++){
val=S-v[i].suma;
st=1;
dr=s-1;
elem=-1;
while(st<=dr){
mij=(st+dr)/2;
if(v[mij].suma==val){
elem=mij;
break;
}
else{
if(v[mij].suma<val)
st=mij+1;
else
dr=mij-1;
}
}
if(elem!=-1){
cout<<v[i].a<<" "<<v[i].b<<" "<<v[i].c<<" "<<v[elem].a<<" "<<v[elem].b<<" "<<v[elem].c;
return 0;
}
}
cout<<-1;
return 0;
}