Cod sursa(job #2504723)

Utilizator PopescuAndreiAlexandruPopescu Andrei Alexandru PopescuAndreiAlexandru Data 5 decembrie 2019 13:54:43
Problema Loto Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <map>

using namespace std;

ifstream fin("loto.in");
ofstream fout("loto.out");

int v[105],n,S,ans;

vector <int> Bin;

map <int,int> M;

bool ok=0;

void Sol(int Sum)
{
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            for(int k=1;j<=n;k++)
            {
                if(v[i]+v[j]+v[k]==Sum)
                {
                    fout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
                    return;
                }
            }
        }
    }
}

int main()
{
    fin>>n>>S;
    for(int i=1;i<=n;i++)
        fin>>v[i];
    for(int k=1;k<=n;k++)
    {
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                int aux=v[i]+v[j]+v[k];
                M[aux]++;
                if(M[aux]==1)
                    Bin.push_back(aux);
            }
        }
    }
    sort(Bin.begin(),Bin.end());
    vector <int> ::iterator it;
    for(it=Bin.begin();it!=Bin.end();it++)
    {
        if(*it<=S)
        {
            int aux=S-*it;
            if(binary_search(Bin.begin(),Bin.end(),aux))
            {
                Sol(*it);
                Sol(aux);
                ok=1;
                break;
            }
        }
    }
    if(!ok)
        fout<<-1<<'\n';
}