Cod sursa(job #2445558)

Utilizator Stefan_PiscuPiscu Stefan Constantin Stefan_Piscu Data 4 august 2019 16:53:31
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <fstream>
#include <algorithm>
using namespace std;

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

struct nod{
              int sum;
              int x, y, z;
          }v[1000003];

int n, s, l, a[103];

bool cmp(nod x, nod y)
{
    return x.sum<y.sum;
}

int main()
{
    fin>>n>>s;
    for(int i=1;i<=n;++i)
        fin>>a[i];
    for(int i=1;i<=n;++i)
        for(int j=i;j<=n;++j)
            for(int k=j;k<=n;++k)
            {
                ++l;
                v[l].x=a[i];
                v[l].y=a[j];
                v[l].z=a[k];
                v[l].sum=v[l].x+v[l].y+v[l].z;
            }
    sort(v+1, v+l+1, cmp);
    for(int i=1;i<=l;++i)
    {
        int x=s-v[i].sum;
        int st=1, dr=l, m;
        while(dr>st)
        {
            m=(dr+st)/2;
            if(v[m].sum<x) st=m+1;
            else if(v[m].sum>x) dr=m-1;
            else
            {
                fout<<v[i].x<<" "<<v[i].y<<" "<<v[i].z<<" "<<v[m].x<<" "<<v[m].y<<" "<<v[m].z<<"\n";
                return 0;
            }
        }
        m=(dr+st)/2;
        if(x==v[m].sum)
        {
            fout<<v[i].x<<" "<<v[i].y<<" "<<v[i].z<<" "<<v[m].x<<" "<<v[m].y<<" "<<v[m].z<<"\n";
            return 0;
        }
    }
    fout<<-1<<"\n";
    return 0;
}