Pagini recente » preoni-2008/clasament/runda-1/10 | Cod sursa (job #272298) | Cod sursa (job #293383) | Cod sursa (job #1222832) | Cod sursa (job #20034)
Cod sursa(job #20034)
#include <fstream.h>
int n, i, k, p[7];
long s, a[102], max = 0, o, t;
int van0 = 0, vans = 0, s6 = 0;
int as,ev;
int main()
{
ifstream be("loto.in");
ofstream ki("loto.out");
be >> n >> s;
if (s % 6 == 0) s6 = 1;
for (i = 0; i<n; i++)
{
be >> a[k];
if (a[k] <= s)
{
if (a[k] == 0) van0 = 1;
else if (a[k] == s) vans = 1;
if (van0 & vans) break;
if (s6) if (a[k] * 6 == s) {max = a[k]; break;}
if (a[k] > max) max = a[i];
k++;
}
}
n = k;
if (van0 & vans) ki << s << " 0 0 0 0 0";
else
if (max * 6 < s) ki << -1;
else if (max * 6 == s) ki << max << max << max << max << max << max;
else
{
if (n == 1) ki << -1;
else
{
p[5] = 0;
o = 6 * a[0];
while (p[0] != n - 1)
{
o -= a[p[5]];
p[5]++;
for (i = 4; p[i + 1] == n && i >= 0; i--)
{ o -= a[p[i]]; p[i]++; }
if (i < 4)
{
t = p[i+1]; o += a[p[i + 1]];
for (i+=2; i < 6; i++)
{ p[i] = t; o += a[p[i]];}
}
else
o += a[p[5]];
if (o == s) break;
}
if (o != s) ki << -1;
else
{for (i = 0; i < 5; i++) ki << a[p[i]] << ' '; ki << a[p[5]];}
}
}
be.close();
ki.close();
return 0;
}