Cod sursa(job #2701733)

Utilizator Diana_IonitaIonita Diana Diana_Ionita Data 1 februarie 2021 15:59:28
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,sum,rez,i,j,a[105];
struct str
{
    int b,c,d,s;
} v[1000010];
bool comp(str x,str y)
{
    if(x.s<y.s)return true;
    return false;
}

int main()
{
    fin>>n>>sum;
    for(i=1; i<=n; ++i)
    {
        fin>>a[i];
    }
    int nr=0;
    for(i=1; i<=n; ++i)
    {
        for(j=i; j<=n; ++j)
        {
            for(int x=j; x<=n; ++x)
            {
                v[++nr].s=a[i]+a[j]+a[x];
                v[nr].b=a[i];
                v[nr].c=a[j];
                v[nr].d=a[x];
            }
        }
    }
    sort(v+1,v+nr+1,comp);
    for(i=1; i<=nr; ++i)
    {
        int   x=sum-v[i].s;
        int st=1;
        int dr=nr;
        rez=0;
        while(st<=dr)
        {
            int mij=(dr+st)/2;
            if(v[mij].s==x)
            {
                rez=mij;
                break;
            }
            else if(v[mij].s< x)st=mij+1;

            else dr=mij-1;
        }
        if(x==v[rez].s)
        {
            fout<<v[i].b<<" "<<v[i].c<< " "<<v[i].d<<" "<<v[rez].b<<" "<<v[rez].c<< " "<<v[rez].d<<'\n';
            return 0;
        }
    }
    fout<<-1;
    return 0;
}