Pagini recente » Cod sursa (job #433636) | Cod sursa (job #3219941) | Cod sursa (job #984418) | Cod sursa (job #738378) | Cod sursa (job #955689)
Cod sursa(job #955689)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
const int MAXN = 110, mod = 66013;
int N, v[MAXN], S, sum, poz;
struct loto
{
int val, i1, i2, i3;
loto(int a, int b, int c, int d) : val(a), i1(b), i2(c), i3(d) {}
};
vector <loto> has[MAXN];
bool cautare(int aux, int va)
{
int n = has[aux].size();
bool ok=0;
for(poz=0; poz<n; ++poz)
if(has[aux][poz].val == va)
{
ok=1;
break;
}
return ok;
}
int main()
{
int i, j, k, aux, aux1;
bool x;
fin >> N >> S;
for(i=0; i<N; ++i)
fin >> v[i];
for(i=0; i<N; ++i)
for(j=0; j<N; ++j)
for(k=0; k<N; ++k)
{
sum = v[i] + v[j] + v[k];
aux = sum%mod;
has[aux].push_back(loto(sum, i, j, k));
}
for(i=0; i<N; ++i)
for(j=0; j<N; ++j)
for(k=0; k<N; ++k)
{
sum = v[i] + v[j] + v[k];
aux = sum%mod;
aux1 = (S-sum)%mod;
x = cautare(aux1, S-sum);
if(x == 1)
{
fout << v[has[aux1][poz].i1] << " " << v[has[aux1][poz].i2] << " " << v[has[aux1][poz].i3] << " " << v[i] << " " << v[j] << " " << v[k];
return 0;
}
}
fout << -1;
fin.close();
fout.close();
return 0;
}