Cod sursa(job #2973901)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 2 februarie 2023 19:26:35
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("loto.in");
ofstream fout ("loto.out");
struct el
{
    int sum,a,b,c;
};
el v[1000001];
int cmp (const el &x,const el &y)
{
    return x.sum<y.sum;
}
int n,s,i,j,k,l[101],di,nrc,st,dr,mij;
int main()
{
    fin>>n>>s;
    for (i=1; i<=n; i++)
        fin>>l[i];
    for (i=1; i<=n; i++)
    {
        for (j=i; j<=n; j++)
        {
            for (k=j; k<=n; k++)
                v[++nrc]={l[i]+l[j]+l[k],l[i],l[j],l[k]};
        }
    }
    sort (v+1,v+nrc+1,cmp);
    for (i=1; i<=nrc; i++)
    {
        di=s-v[i].sum;
        st=1;
        dr=nrc;
        while (st<=dr)
        {
            mij=(st+dr)/2;
            if (v[mij].sum==di)
            {
                fout<<v[i].a<<" "<<v[i].b<<" "<<v[i].c<<" "<<v[mij].a<<" "<<v[mij].b<<" "<<v[mij].c;
                return 0;
            }
            if (di<v[mij].sum)
                dr=mij-1;
            else
                st=mij+1;
        }
    }
    fout<<-1;
    return 0;
}