Cod sursa(job #976503)

Utilizator rebound212Mihnea Savu rebound212 Data 23 iulie 2013 13:10:29
Problema Loto Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
# include <cstdio>
# include <vector>
# define MOD 666015
using namespace std;
struct loto
{
    int x,y,z,suma;
};

loto v;
vector <loto> H[MOD];
vector <loto> :: iterator it;
int n,s,i,ind,a[110],sum,j,k;

vector <loto> :: iterator find(int x)
{
    for(it=H[ind].begin(); it!=H[ind].end(); ++it)
        if((*it).suma==x) return it;
    return it;
}
int main()
{
    freopen("loto.in", "r", stdin);
    freopen("loto.out", "w", stdout);
    scanf("%d %d\n", &n, &s);
    for(i=1; i<=n; ++i) scanf("%d", &a[i]);
    for(i=1; i<=n; ++i)
        for(j=1; j<=n; ++j)
            for(k=1; k<=n; ++k)
            {
                sum=a[i]+a[j]+a[k];
                ind=(s-sum)%MOD;
                it=find(s-sum);
                if(it!=H[ind].end())
                {
                    printf("%d %d %d %d %d %d", a[i],a[j],a[k],(*it).x,(*it).y,(*it).z);
                    return 0 ;
                }
                ind=sum%MOD;
                v.x=a[i];
                v.y=a[j];
                v.z=a[k];
                v.suma=sum;
                it=find(v.suma);
                if(it==H[ind].end()) H[ind].push_back(v);
            }
    printf("-1");
    return 0;
}