Cod sursa(job #3041594)

Utilizator Shaan_StefanShaan Stefan Shaan_Stefan Data 31 martie 2023 19:22:48
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <fstream>
#include <algorithm>

using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct element
{
    int sum, x, y, z;
}el[1000001];
int n, s, i, a[101], j, k, l, n2, st, dr, mij, sm;
bool ok;
bool comp(element nr1, element nr2)
{
    return nr1.sum<nr2.sum;
}
int main()
{
    fin>>n>>s;
    for(i=1; i<=n; i++)
        fin>>a[i];

    for(i=1; i<=n; i++)
    {
        for(j=i; j<=n; j++)
        {
            for(k=j; k<=n; k++)
            {
                sm=a[i]+a[j]+a[k];
                el[++l].sum=sm;
                el[l].x=i;
                el[l].y=j;
                el[l].z=k;
            }
        }
    }

    sort(el+1, el+l+1, comp);

    ok=1;
    for(i=1; i<=l*ok; i++)
    {
        n2=s-el[i].sum;
        st=i, dr=l;
        while(st<=dr)
        {
            mij=(st+dr)/2;
            if(n2==el[mij].sum)
            {
                fout<<el[i].x<<' '<<el[i].y<<' '<<el[i].z<<' '<<el[mij].x<<' '<<el[mij].y<<' '<<el[mij].z;
                ok=0;
                break;
            }
            else
            {
                if(el[mij].sum<n2)
                    st=mij+1;
                else
                    dr=mij-1;
            }
        }
    }

    if(ok==1)
        fout<<"-1";
    return 0;
}