Cod sursa(job #1467380)

Utilizator horiainfoTurcuman Horia horiainfo Data 3 august 2015 12:34:14
Problema Loto Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>
#include <algorithm>
#include <bitset>

using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int v[8],n,s,a[102],i,j,k,lgV;
bitset<600000001> b;
bool test(int a,int b)
{
    return a<b;
}
void afis(int s)
{
    for(i=1;i<=n;i++)
        for(j=i;a[i]+a[j]<s && j<=n;j++)
            for(k=j;a[i]+a[j]+a[k]<=s && k<=n;k++)
                if(a[i]+a[j]+a[k]==s)
                {
                    v[++lgV]= a[i];
                    v[++lgV]= a[j];
                    v[++lgV]= a[k];
                    return;
                }
}
int main()
{
    fin>>n>>s;
    for(int i=1;i<=n;i++)
        fin>>a[i];
    sort(a+1,a+n+1,test);
    for(int i=1;i<=n;i++)
        for(j=i;a[i]+a[j]<s && j<=n;j++)
            for(k=j;a[i]+a[j]+a[k]<s && k<=n;k++)
                b[a[i]+a[j]+a[k]]=1;
    for(int i=1;i<s;i++)
        if(b[i]==1 && b[s-i]==1)
        {
            afis(i);
            afis(s-i);
            sort(v+1,v+7,test);
            for(i=1;i<=6;i++)
                fout<<v[i]<<' ';
            return 0;
        }
    fout<<-1;
    return 0;
}