Pagini recente » Cod sursa (job #2900245) | Cod sursa (job #1849338) | Cod sursa (job #1956132) | Cod sursa (job #1313139) | Cod sursa (job #714267)
Cod sursa(job #714267)
#include<fstream>
#define MAXN 102
#define inf "loto.in"
#define outf "loto.out"
using namespace std;
ifstream in(inf);
ofstream out(outf);
int n,s,v[MAXN],a[7],k,m;
void read()
{
in>>n>>s;
for(int i=1;i<=n;i++)
in>>v[i];
}
void swap(int h[MAXN],int x,int y)
{
int aux=h[x];
h[x]=h[y];
h[y]=aux;
}
void heapify(int h[MAXN],int i)
{
int s,d,max=i;
s=2*i;
d=2*i+1;
if(s<=m && h[s]<h[i])
max=s;
if(d<=m && h[d]<h[max])
max=d;
if(max!=i)
{
swap(v,max,i);
heapify(h,max);
}
}
void heapsort(int h[MAXN])
{
int i;
for(i=m/2;i>=1;i--)
heapify(h,i);
for(i=2;i<=m;i++)
{
swap(v,1,m);
m--;
heapify(h,1);
}
}
int suma()
{
int sum=0;
for(int i=1;i<=6;i++)
sum=sum+a[i];
return sum;
}
int main()
{
read();
m=n;
//heapsort(v);
int i1,i2,i3,i4,i5,i6;
for(i1=1;i1<=n;i1++)
for(i2=1;i2<=n;i2++)
for(i3=1;i3<=n;i3++)
for(i4=1;i4<=n;i4++)
for(i5=1;i5<=n;i5++)
for(i6=1;i6<=n;i6++)
if(v[i1]+v[i2]+v[i3]+v[i4]+v[i5]+v[i6]==s)
{
out<<v[i1]<<" "<<v[i2]<<" "<<v[i3]<<" "<<v[i4]<<" "<<v[i5]<<" "<<v[i6]<<" ";
return 0;
}
out<<"-1";
return 0;
}
/*#include<fstream>
#define MAXN 102
#define inf "loto.in"
#define outf "loto.out"
using namespace std;
ifstream in(inf);
ofstream out(outf);
int n,s,v[MAXN],a[7],k,m;
void read()
{
in>>n>>s;
for(int i=1;i<=n;i++)
in>>v[i];
}
void swap(int h[MAXN],int x,int y)
{
int aux=h[x];
h[x]=h[y];
h[y]=aux;
}
void heapify(int h[MAXN],int i)
{
int s,d,max=i;
s=2*i;
d=2*i+1;
if(s<=m && h[s]<h[i])
max=s;
if(d<=m && h[d]<h[max])
max=d;
if(max!=i)
{
swap(v,max,i);
heapify(h,max);
}
}
void heapsort(int h[MAXN])
{
int i;
for(i=m/2;i>=1;i--)
heapify(h,i);
for(i=2;i<=m;i++)
{
swap(v,1,m);
m--;
heapify(h,1);
}
}
int suma()
{
int sum=0;
for(int i=1;i<=6;i++)
sum=sum+a[i];
return sum;
}
int solve(int y)
{
int i;
for(i=1;i<=6;i++)
a[i]=v[y];
if(suma()==s)
return 1;
i=1;
while(i<=6)
{
int k=1;
while(suma()!=s && k!=n)
{
k++;
a[i]=v[k];
}
if(suma()==s)
return 1;
i++;
}
return 0;
}
int main()
{
read();
m=n;
int bun=0,j=1;
heapsort(v);
while(bun==0 && j<=n)
{
bun=solve(j);
j++;
}
if(bun==1)
{
m=6;
heapsort(a);
for(int i=1;i<=6;i++)
out<<a[i]<<" ";
}
else
out<<"-1";
return 0;
}*/