Pagini recente » Cod sursa (job #2183829) | Cod sursa (job #2425515) | Cod sursa (job #784674) | Cod sursa (job #442673) | Cod sursa (job #1743082)
#include <fstream>
#include <iostream>
using namespace std;
int v[100],n,s,a[7],sum;
ifstream f("loto.in");
ofstream g("loto.out");
bool print;
void scan(){
f>>n>>s;
for(int i=0;i<n;i++)
{
f>>v[i];
}
f.close();
}
void qk(int ci,int cf){
int i=ci,j=cf,m=(ci+cf)/2;
while(i<j){
while(v[i]<v[m])i++;
while(v[j]>v[m])j--;
if(i<j){
int aux=v[i];
v[i]=v[j];
v[j]=aux;
i++;
j--;
}if(i<cf)qk(i,cf);
if(j>ci)qk(j,ci);
}
}
void afisare(){
for(int i=1;i<7;i++)
{
g<<v[a[i]]<<" ";
}
}
void bk(int k){
if(k<=6&&!print){
for(int i=a[k-1];i<n;i++){
a[k]=i;
sum+=v[i];
if(sum<=s&&v[n-1]*(6-k)+sum>=s){
if(k==6&&sum==s){print=true;afisare();}
else bk(k+1);
}
sum-=v[i];
}
}
}
int main()
{
scan();
qk(0,n-1);
bk(1);
if(!print)g<<"-1";
return 0;
}