Pagini recente » Cod sursa (job #727641) | Cod sursa (job #2191532) | Cod sursa (job #164679) | Cod sursa (job #1486160) | Cod sursa (job #908574)
Cod sursa(job #908574)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
unsigned long s;
unsigned short n;
unsigned long V[101];
unsigned long long S[101];
unsigned long Sol[6];
void citire()
{
int i;
ifstream in("loto.in");
in>>n>>s;
for(i=1;i<=n;i++)
in>>V[i];
in.close();
}
void init()
{
int i;
sort(V+1,V+n+1);
S[0]=0;
for(i=1;i<=n;i++)
S[i]=S[i-1]+V[i];
}
int contains(unsigned long x)
{
int i;
for(i=1;i<=n;i++)
if(V[i]==x)
return 1;
return 0;
}
void complete(short end,unsigned long x)
{
int i;
for(i=end;i>=1;i--)
Sol[i]=x;
}
int solve()
{
int i,j;
for(i=6;i>=1;i--)
{
if(i==1)
if(contains(s)==0)
return 0;
if(s%i==0 && contains(s/i))
{
complete(i,s/i);
return 1;
}
else
{
for(j=n;j>=1;j--)
if(s>S[j])
{
s=s-V[j];
Sol[i]=V[j];
break;
}
}
}
}
int main()
{
ofstream out("loto.out");
citire();
init();
if(solve())
for(int i=1;i<=6;i++)
out<<Sol[i]<<" ";
else
out<<"-1";
out.close();
return 0;
}