Pagini recente » Clasamentul arhivei de probleme | Cei mai harnici utilizatori info-arena | Clasament arhiva | Cei mai harnici utilizatori infoarena | Cod sursa (job #2202405)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.in");
struct pct
{
int x,y;
}r[101];
int a[1001],n,s,j,v[1001],mx,p,z,i,aux,ok=1,nr;
int main()
{
f>>n>>s;
for(i=1; i<=n; i++)
{
f>>v[i];
}
for(i=1; i<n; i++)
{
mx=v[i];
p=i;
for(j=i+1; j<=n; j++)
if(mx>v[j])
{
p=j;
mx=v[j];
}
aux=v[i];
v[i]=v[p];
v[p]=aux;
}
for(i=1; i<=n; i++)
{
a[i]=v[i]+a[i-1];
}
for(i=n;i>=1;i--)
{
z=s/v[i];
if(s-z*v[i]<=a[i-1])
while(s-z*v[i]<a[i-1])
z--;
s=s-z*v[i];
r[i].x=v[i];
r[i].y=z;
nr=nr+z;
if(r[i].y==0||nr>6)
ok=0;
}
if(ok)
{if(s!=0)
g<<-1;
else
{for(i=1;i<=n;i++)
for(j=1;j<=r[i].y;j++)
g<<r[i].x<<" ";}}
else g<<-1;
return 0;
}