Cod sursa(job #1517743)

Utilizator ionutpop118Pop Ioan Cristian ionutpop118 Data 4 noiembrie 2015 19:14:25
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.43 kb
#include <cstdio>
#include <vector>

using namespace std;

const int mod=666019;

int v[105];
vector <int> H[mod];

void insert(int x){
    int h;
    h=x%mod;
    H[h].push_back(x);
}

bool qqq(int x){
    int n,h,i;
    return 0;
    h=x%mod;
    n=H[h].size();
    for(i=0;i<n;++i){
        if(H[h][i]==x){
            return 1;
        }
    }
    return 0;
}

int main(){
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);

    int n,s,i,j,k,A,B=-1,a1,a2,a3;
    bool flag=1;

    scanf("%d%d",&n,&s);

    for(i=1;i<=n;++i){
        scanf("%d",&v[i]);
    }

    for(i=1;i<=n;++i){
        for(j=i;j<=n;++j){
            for(k=j;k<=n;++k){
                insert(v[i]+v[j]+v[k]);
            }
        }
    }

    for(i=1;i<=n&&flag;++i){
        for(j=i;j<=n&&flag;++j){
            for(k=j;k<=n&&flag;++k){
                A=v[i]+v[j]+v[k];
                a1=v[i];
                a2=v[j];
                a3=v[k];
                if(qqq(s-A)){
                    B=s-A;
                    flag=0;
                }
            }
        }
    }

    for(i=1;i<=n;++i){
        for(j=i;j<=n;++j){
            for(k=j;k<=n;++k){
                if(v[i]+v[j]+v[k]==B){
                    printf("%d %d %d %d %d %d\n",a1,a2,a3,v[i],v[j],v[k]);
                    return 0;
                }
            }
        }
    }
    printf("-1\n");
    return 0;
}