Cod sursa(job #2892913)

Utilizator bogdaniliBogdan Iliescu bogdanili Data 23 aprilie 2022 23:00:58
Problema Loto Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f ("loto.in");
ofstream g ("loto.out");

int n,s,h, a[101], v[1000001], i, j, k, x;

int binar(int x)
{
    int st=1, dr=1, mijl;
    while(st<=dr)
        {

        mijl=(st+dr)/2;
        if(v[mijl]==x)
            return 1;

        if (x<v[mijl])
            dr=mijl-1;
        else st=mijl+1;

        }

    return 0;
}

int main()
{

    f>>n>>s;

    for (i=1;i<=n;i++)
        f>>a[i];

    for (i=1;i<=n;i++)
      for (j=1;j<=n;j++)
        for (k=1;k<=n;k++)
            v[++h]=a[i]+a[j]+a[k];

    sort(v+1,v+h+1);

    for (i=1;i<=n;i++)
      for (j=1;j<=n;j++)
        for (k=1;k<=n;k++)
        {
            x= s- a[i]- a[j]- a[k];
            if (binar(x))
            {
                 g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
                 for (i=1;i<=n;i++)
                   for (j=1;j<=n;j++)
                     for (k=1;k<=n;k++)
                       if (a[i]+a[j]+a[k]==x)
                       {
                            g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
                            g<<"\n";
                            exit(0);
                       }
            }
        }

    g<<"-1\n";

    return 0;
}