Cod sursa(job #2761224)

Utilizator VladCaloVlad Calomfirescu VladCalo Data 1 iulie 2021 10:53:23
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.37 kb
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;

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

int apartine(deque <int> dq, int nr)
{
   for (int i=0; i<dq.size(); i++)
   {
       if(dq[i]==nr) {
           return 1;
       }
   }
   return 0;
}

int main() {
    int n, numere[101],s,x=-1;
    cin>>n>>s;
    for (int i=0;i<n;i++)
    {
        cin>>numere[i];
    }
    deque <int> valpos;
    for (int i=0; i<n; i++) {
        for (int j=i; j<n; j++) {
            for (int k=j; k<n; k++) {
                valpos.push_back(numere[i]+numere[j]+numere[k]);
            }
        }
    }
    for (int i=0; i<valpos.size(); i++)
    {
        if(apartine(valpos, s-valpos[i]))
        {
            x=valpos[i];
            break;
        }
    }

    if(x==-1)
    {
        cout<<-1;
        return 0;
    }

    cout<<endl;
    s = s-x;
    for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
            for (int k=0; k<n; k++)
    {
                if(x!=-1 && numere[i]+ numere[j]+numere[k]==x)
                {
                    cout<<numere[i]<<" "<<numere[j]<<" "<<numere[k]<<" ";
                    x = -1;
                }
                if(s!=-1 && numere[i]+ numere[j]+numere[k]==s)
                {                  cout<<numere[i]<<" "<<numere[j]<<" "<<numere[k]<<" ";
                    s = -1;
                }
    }


    return 0;
}