Pagini recente » Cod sursa (job #1606425) | Cod sursa (job #957924) | Cod sursa (job #1631469) | Cod sursa (job #641277) | Cod sursa (job #809529)
Cod sursa(job #809529)
#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;
}
}
for(l=1;l<=6;++l)
g<<aux[l]<<" ";
g<<"\n";
return;
}
}
g<<"-1\n";
return;
}
int main()
{
citire();
generare();
parc();
return 0;
}