Pagini recente » Cod sursa (job #2731362) | Cod sursa (job #761599) | Cod sursa (job #3184689) | Cod sursa (job #142572) | Cod sursa (job #2405149)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
long long n,i,j,k,a[110],cnt,st,dr,mid,s;
struct sum{
long long s;
long long x;
long long y;
long long z;
} v[1000100];
bool cmp(const sum &a, const sum &b){
return a.s<b.s;
}
int main(){
fin>>n>>s;
for(i=1;i<=n;i++)
fin>>a[i];
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++){
cnt++;
v[cnt].s=a[i]+a[j]+a[k];
v[cnt].x=a[i]; v[cnt].y=a[j]; v[cnt].z=a[k];
}
sort(v+1,v+cnt+1,cmp);
for(i=1;i<=cnt;i++){
st=i; dr=cnt;
while(st<=dr){
mid=(st+dr)/2;
if(v[i].s+v[mid].s==s){
fout<<v[i].x<<" "<<v[i].y<<" "<<v[i].z<<" "<<v[mid].x<<" "<<v[mid].y<<" "<<v[mid].z;
return 0;
}
if(v[i].s+v[mid].s<s)
st=mid+1;
else
dr=mid-1;
}
}
fout<<-1;
return 0;
}