Pagini recente » Cod sursa (job #1553926) | Cod sursa (job #1268366) | Cod sursa (job #240041) | Cod sursa (job #1797921) | Cod sursa (job #1294899)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct str{
int a;
int b;
int c;
int s;
};
int cmp(const str &a , const str &b){
return a.s<b.s;
}
str s[1000002];
int v[1000002],d[10],n,L,i,j,k,sum,u,mid,st,dr;
int main(){
fin>>n>>L;
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++){
sum=v[i]+v[j]+v[k];
u++;
s[u].a=v[i];
s[u].b=v[j];
s[u].c=v[k];
s[u].s=sum;
}
}
}
sort(s+1,s+u+1,cmp);
for(i=1;i<=n;i++){
for(j=i;j<=n;j++){
for(k=j;k<=n;k++){
sum=v[i]+v[j]+v[k];
sum=L-sum;
st=1;
dr=u;
while(st<=dr){
mid=(st+dr)/2;
if(sum==s[mid].s){
d[1]=s[mid].a;
d[2]=s[mid].b;
d[3]=s[mid].c;
d[4]=v[i];
d[5]=v[j];
d[6]=v[k];
sort(d+1,d+7);
for(i=1;i<=6;i++){
fout<<d[i]<<" ";
}
return 0;
}
if(sum<s[mid].s){
dr=mid-1;
}else{
st=mid+1;
}
}
}
}
}
fout<<"-1";
return 0;
}