Pagini recente » Cod sursa (job #189057) | Cod sursa (job #1956296) | Cod sursa (job #2691259) | Cod sursa (job #2349939) | Cod sursa (job #1415989)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct comb{
int x,y,z;
int sum;
}a[100*100*100+1];
long long n,v[102],i,j,s,d,k,x,st,dr,m,b[7],y;
int caut(int x){
int st=1;int dr=k;int m;
while(st<=dr){
m=(dr+st)>>1;
if(a[m].sum==x) return m;
if(a[m].sum<x) st=m+1;
else dr=m-1;
}
return st;
}
int cmp( comb a, comb b){
if(a.sum < b.sum)
return 1;
return 0;
}
int main(){
fin>>n>>s;
for(i=1;i<=n;i++)
fin>>v[i];
sort(v+1,v+n+1);
for(i=1;i<=n;i++){
for(j=i;j<=n;j++){
for(d=j;d<=n;d++)
{
a[++k].x=i;
a[k].y=j;
a[k].z=d;
a[k].sum=v[i]+v[j]+v[d];
}
}
}
sort(a+1,a+k+1,cmp);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(d=1;d<=n;d++){
if(v[i]+v[j]+v[d]<s){
x=s-(v[i]+v[j]+v[d]);
y=caut(x);
if(a[y].sum==x){
b[1]=v[i];
b[2]=v[j];
b[3]=v[d];
b[4]=v[a[y].x];
b[5]=v[a[y].y];
b[6]=v[a[y].z];
//sort(b+1,b+7);
for(int i=1;i<=6;i++)
fout<<b[i]<<" ";
fin.close();fout.close();
return 0;
}
}
}
fout<<-1;
fin.close();fout.close();
return 0;
}