Cod sursa(job #1760509)

Utilizator CalarisPredut Denis Stefanita Calaris Data 20 septembrie 2016 21:24:59
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.48 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

#define MAX 1000005

int values[MAX];

int main()
{
    fstream f("loto.in",ios::in);
    ofstream g("loto.out");
    int vect[101];
    int x,N,S,M,i,j,k,m,indice=0;
    bool ok1 = 0, ok2 = 0;

    f>>N>>S;

    for(i=1;i<=N;++i)
        {
            f>>x;
            vect[i] = x;
        }

    for(i=1;i<=N;++i)
        for(j=i;j<=N;++j)
          for(k=j;k<=N;++k)
                values[++indice]=vect[i] + vect[j] + vect[k];


    sort(values+1,values+indice+1);


    for(i=1;i<=indice;++i)
        {

        if(binary_search(values+1,values+indice+1,S-values[i]))
        {
           m = S-values[i];
           for(x=1;x<=N;++x)
             for(j=x;j<=N;++j)
               for(k=j;k<=N;++k)
                    {
                    if(ok1 == 1 && ok2 == 1) return 0;
                    if(!ok1)
                        if(vect[x]+vect[j]+vect[k] == values[i])
                        {
                        g<<vect[x]<<" "<<vect[j]<<" "<<vect[k]<<" ";
                        ok1 = 1;
                        }
                     if(!ok2)
                        if(vect[x]+vect[j]+vect[k] == m)
                        {
                        g<<vect[x]<<" "<<vect[j]<<" "<<vect[k]<<" ";
                        ok2 = 1;
                        }
                    }
             return 0;
            }

        }
    g<<"-1";

    return 0;
}