Pagini recente » Cod sursa (job #1383415) | Cod sursa (job #1383667) | Cod sursa (job #1459952) | Cod sursa (job #2267016) | Cod sursa (job #1385037)
#include<fstream>
#include<algorithm>
#define ff first.first
#define fs first.second
#define sf second.first
#define ss second.second
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,i,j,k,h,I,u,mid,s,ok;
int v[101];
pair < pair <int,int> ,pair<int,int> > p[1000001];
int main(){
fin>>n>>s;
for(i=1;i<=n;i++)
fin>>v[i];
if(n>=3){
for(i=1;i<=n-2;i++){
for(j=i;j<=n-1;j++){
for(k=j;k<=n;k++)
if(v[i]+v[j]+v[k]<s){
p[++h].ff=v[i]+v[j]+v[k];
p[h].fs=v[i];
p[h].sf=v[j];
p[h].ss=v[k];
}
}
}
}
else{
if(n==2){
if(v[2]*6==s){
for(i=1;i<=6;i++)
fout<<v[2]<<" ";
return 0;
}
else{
if(v[1]*6==s){
for(i=1;i<=6;i++)
fout<<v[i]<<" ";
return 0;
}
else{
fout<<-1;
return 0;
}
}
}
else{
if(v[1]*6==s){
for(i=1;i<=6;i++)
fout<<v[1]<<" ";
return 0;
}
else{
fout<<-1;
return 0;
}
}
}
sort(p+1,p+h+1);
ok=0;
for(i=1;i<=h;i++){
I=1;
u=h;
while(I<=u){
mid=(I+u)/2;
if(s-p[i].ff==p[mid].ff){
break;
}
if(s-p[i].ff>p[mid].ff){
I=mid+1;
}
if(s-p[i].ff<p[mid].ff)
u=mid-1;
}
if(I<u){
if(s-p[i].ff==p[mid].ff){
fout<<p[i].fs<<" "<<p[i].sf<<" "<<p[i].ss<<" "<<p[mid].fs<<" "<<p[mid].sf<<" "<<p[mid].ss;
break;
}
}
else{
if(s-p[i].ff==p[I-1].ff){
fout<<p[i].fs<<" "<<p[i].sf<<" "<<p[i].ss<<" "<<p[I-1].fs<<" "<<p[I-1].sf<<" "<<p[I-1].ss;
break;
}
}
}
if(ok==0)
fout<<-1;
return 0;
}