Pagini recente » Cod sursa (job #1921904) | Cod sursa (job #2345334) | Cod sursa (job #1192027) | Cod sursa (job #822) | Cod sursa (job #4978)
Cod sursa(job #4978)
// Loto.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
//#include <conio.h>
#pragma warning(disable : 4996)
long n, s;
long v[100];
long sz[6] = {0};
int sort()
{
for(int i=0;i<n;i++)
{
int min = i;
for(int j=i+1;j<n;j++)
if (v[min] > v[j]) min = j;
if (min != i)
{
long cs = v[i];
v[i] = v[min];
v[min] = cs;
};
};
return 0;
};
int backn0(int p)
{
int retv = 0;
if (p >= 6)
{
long sum = 0;
for(int i=0;i<6;i++) sum += v[sz[i]];
if (sum == s) retv = 1;
} else {
sz[p] = sz[p-1];
while (sz[p] < n && retv == 0)
{
retv = backn0(p+1);
sz[p]++;
}
sz[p]--;
}
return retv;
}
int back0()
{
int retv = 0;
while (sz[0] < n && retv == 0)
{
retv = backn0(1);
sz[0]++;
}
return retv;
}
int main(int argc, char* argv[])
{
long i;
FILE *f = fopen("loto.in","r");
fscanf(f, "%ld %ld", &n, &s);
for(i=0;i<n;i++) fscanf(f, "%ld", &v[i]);
fclose(f);
// sort();
f = fopen("loto.out","w");
/* if (s < v[0]*6 || s > v[n-1]*6)
{
fprintf(f, "-1");
} else */{
/*if (s == v[n-1]*6)
{
for(i=0;i<6;i++) fprintf(f, "%ld ", v[n-1]);
} else */{
if (back0() != 0)
{
for(i=0;i<6;i++) fprintf(f, "%ld ", v[sz[i]]);
} else {
fprintf(f,"-1");
}
}
}
fclose(f);
return 0;
}