Cod sursa(job #1558678)

Utilizator ipus1Stefan Enescu ipus1 Data 29 decembrie 2015 14:52:11
Problema Loto Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<cstdio>
#include<algorithm>
using namespace std;
int n,s,pp;
int v[101],st[7];
bool vc[100000001];
void back(int k)
    {if(pp==0)
        {if(k==6)
            {int i;
            if(s-st[0]>=0&&s-st[0]<=100000000&&vc[s-st[0]]==1)
                {for(i=1;i<=5;i++)
                    printf("%d ",v[st[i]]);
                printf("%d ",s-st[0]);
                pp=1;
                }
            }
        else
            {int i;
            for(i=st[k-1];i<n;i++)
                if(st[0]+v[i]<=s)
                    {st[0]+=v[i];
                    st[k]=i;
                    back(k+1);
                    st[0]-=v[i];
                    }
                else
                    i=n+1;
            }
        }
    }
int main ()
{freopen ("loto.in","r",stdin);
freopen ("loto.out","w",stdout);
int i;
scanf("%d%d",&n,&s);
for(i=0;i<n;i++)
    {scanf("%d",&v[i]);
    vc[v[i]]=1;
    }
sort(v,v+n);
back(1);
if(pp==0)
    printf("-1");
return 0;
}