Cod sursa(job #930204)
Utilizator | Data | 27 martie 2013 14:52:37 | |
---|---|---|---|
Problema | Loto | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.58 kb |
#include <fstream>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int i,n,v[101],k,rez[7],j,ok;
long long s,suma;
int main()
{
fin>>n>>s;
for(i=1;i<=n;++i)
fin>>v[i];
if(v[n]*6<s)
{
fout<<-1;
return 0;
}
else
{
for(i=n;i>=0;--i)
{
if(suma==s&&k==6)
{
for(j=6;j>=1;--j)
fout<<rez[j]<<" ";
return 0;
}
if(suma==s&&k!=6)
{
suma-=rez[k];
rez[k--]=0;
}
ok=0;
while(suma<s&&k<6)
{
rez[++k]=v[i];
suma+=v[i];
ok=1;
}
if(ok==0)
{
while(suma>s)
{
suma-=rez[k];
suma+=v[i];
rez[k--]=v[i];
ok++;
}
k+=ok;
while(suma<s&&k<6)
{
rez[++k]=v[i];
suma+=v[i];
ok=1;
}
}
}
}
fout<<-1;\
return 0;
}