Cod sursa(job #2541136)

Utilizator eugen5092eugen barbulescu eugen5092 Data 8 februarie 2020 10:13:34
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.5 kb
#include <bits/stdc++.h>
using namespace std;
#define P 123457
ifstream ci("loto.in");
ofstream cou("loto.out");
struct date
{
    int sum,x,y,z;
};
int n,a[105],s;
vector<date>v[P];

void inserare(date k)
{
    int r;
    r=k.sum%P;
    for(auto i:v[r])
    {
        if(i.sum==k.sum )
        {
            return;
        }

    }
    v[r].push_back(k);
}
date cautare(date k)
{
    int r;
    r=k.sum%P;
    for(auto i:v[r])
    {
        if(i.sum==k.sum )
        {
            return i;
        }

    }
    date k1;
    k1.sum=-1;
    return k1;

}

void cit()
{
    ci>>n>>s;
    for(int i=1; i<=n; i++)
    {
        ci>>a[i];
    }

}

void rez(){
int s1,i,j,r;
date x,y;
for(i=1;i<=n;i++){
    for(j=1;j<=n;j++){
        for(r=1;r<=n;r++){
            x.sum=a[i]+a[j]+a[r];
            x.x=a[i];
            x.y=a[j];
            x.z=a[r];
            inserare(x);
        }
    }
}
for(i=1;i<=n;i++){
    for(j=1;j<=n;j++){
        for(r=1;r<=n;r++){
            x.sum=s-(a[i]+a[j]+a[r]);
            x.x=a[i];
            x.y=a[j];
            x.z=a[r];
            if(x.sum>=0){
                y=cautare(x);
                //cout<<x.sum<<" "<<y.sum<<" "<<s<<"\n";
                if(y.sum!=-1){

                    cou<<a[i]<<" "<<a[j]<<" "<<a[r]<<" "<<y.x<<" "<<y.y<<" "<<y.z;
                    return;
                }
            }

        }
    }
}
cou<<"-1";

}

int main()
{
    cit();
    rez();
    return 0;
}