Pagini recente » Cod sursa (job #81502) | Cod sursa (job #2590892) | Cod sursa (job #1152484) | Cod sursa (job #1879515) | Cod sursa (job #809531)
Cod sursa(job #809531)
#include <fstream>
#include <stdlib.h>
using namespace std;
int n;
long int s, v[101],nr=0;
struct loto {int poz;long int sum;} a[1000001];
void sortare ()
{
int p, k;
k=1;
while (k)
{k=0;
for (int i=1;i<n;++i)
if (v[i]>v[i+1])
{
p=v[i+1];
v[i+1]=v[i];
v[i]=p;
k=1;
}
}
return;
}
void citire ()
{
ifstream d("loto.in");
d>>n>>s;
for (int i=1;i<=n;++i)
d>>v[i];
d.close();
}
void generare()
{
sortare();
int i , j , k;
for(i=1;i<=n;++i)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
{ nr++;
a[nr].sum=v[i]+v[j]+v[k];
a[nr].poz=i*100+j*10+k;
}
}
void parc()
{
ofstream g("loto.out");
int j,i,aux[7];
for(i=1;i<=nr;++i)
for(j=i;j<=nr;j++) //aplicam cautare binara !!
{
if(a[i].sum+a[j].sum==s)
{
aux[1]=v[a[i].poz%10]; a[i].poz/=10;
aux[2]=v[a[i].poz%10]; a[i].poz/=10;
aux[3]=v[a[i].poz%10]; a[i].poz/=10;
aux[4]=v[a[j].poz%10]; a[j].poz/=10;
aux[5]=v[a[j].poz%10]; a[j].poz/=10;
aux[6]=v[a[j].poz%10]; a[j].poz/=10;
int p, k,l;
k=1;
while (k)
{k=0;
for (int l=1;l<6;++l)
if (aux[l]>aux[l+1])
{
p=aux[l+1];
aux[l+1]=aux[l];
aux[l]=p;
k=1;
}
}
long int s2=0;
for(l=1;l<=6;++l)
s2+=aux[l];
if(s2==s)
for(l=1;l<=6;++l)
g<<aux[l]<<" ";
g<<"\n";
return;
}
}
g<<"-1\n";
return;
}
int main()
{
citire();
generare();
parc();
return 0;
}