Cod sursa(job #2439355)

Utilizator stefantagaTaga Stefan stefantaga Data 15 iulie 2019 18:22:42
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.36 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct wow
{
    int suma,a,b,c;
}val[1000005];
int compare (wow a,wow b)
{
    return a.suma<b.suma;
}
int n,s,v[105],i,j,k,q,cecaut,st,dr,mij,sol;
int main()
{
    f>>n>>s;
    for (i=1;i<=n;i++)
    {
        f>>v[i];
    }
    for (i=1;i<=n;i++)
    {
        for (j=i+1;j<=n;j++)
        {
            for (k=j+1;k<=n;k++)
            {
                val[++q].suma=v[i]+v[j]+v[k];
                val[q].a=v[i];
                val[q].b=v[j];
                val[q].c=v[k];
            }
        }
    }
    sort (val+1,val+q+1,compare);
    for (i=1;i<=q&&val[i].suma<=s/2;i++)
    {
        cecaut=s-val[i].suma;
        st=1;
        dr=q;
        sol=0;
        while (st<=dr)
        {
            mij=(st+dr)/2;
            if (val[mij].suma==cecaut)
            {
                sol=mij;
                break;
            }
            else
            if (val[mij].suma<cecaut)
            {
                st=mij+1;
            }
            else
            {
                dr=mij-1;
            }
        }
        if (sol!=0)
        {
            g<<val[i].a<<" "<<val[i].b<<" "<<val[i].c<<" "<<val[sol].a<<" "<<val[sol].b<<" "<<val[sol].c;
            return 0;
        }
    }
    g<<"-1";
    return 0;
}