Pagini recente » Cod sursa (job #119356) | Cod sursa (job #197550) | Cod sursa (job #654355) | Cod sursa (job #2960321) | Cod sursa (job #1743083)
#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(ci,j);
}
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;
}