Cod sursa(job #2759177)

Utilizator daria_diaDaria Diaconu daria_dia Data 15 iunie 2021 19:44:50
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.23 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
int v[100],sume[1000000];
int main()
{
    int n,s,m=0,ok=0;
    int x,st=0,dr=n-1,mid;
    cin>>n>>s;
    for(int i=0; i<n; i++)
        cin>>v[i];
    for(int a=0; a<n; a++)
    {
        for(int b=0; b<n; b++)
        {
            for(int c=0; c<n; c++)
            {
                sume[m]=v[a]+v[b]+v[c];
                m++;
            }
        }
    }
    sort(sume, sume+m);
    for(int i=0; i<m; i++)
    {
        for(int a=0; a<n; a++)
        {
            for(int b=0; b<n; b++)
            {
                for(int c=0; c<n; c++)
                {
                    x=s-v[a]-v[b]-v[c];
                    st=0;
                    dr=m-1;
                    while(st<=dr)
                    {
                        mid=(st+dr)/2;
                        if(v[mid]<st)
                        {
                            dr=mid-1;
                        }
                        else if(v[mid]<dr)
                        {
                            st=mid;
                        }
                        else
                            ok=1;
                    }
                }
            }
        }
    }
    if(ok==1)
        cout<<"-1";
    else
    {
        for(int a=0; a<n; a++)
        {
            for(int b=0; b<n; b++)
            {
                for(int c=0; c<n; c++)
                {
                    if(v[a]+v[b]+v[c]==x)
                    {
                        cout<<v[a]<<" "<<v[b]<<" "<<v[c]<<" ";
                        a=n;
                        b=n;
                        break;
                    }
                }
            }
        }
         for(int a=0; a<n; a++)
        {
            for(int b=0; b<n; b++)
            {
                for(int c=0; c<n; c++)
                {
                    if(v[a]+v[b]+v[c]==s-x)
                    {
                        cout<<v[a]<<" "<<v[b]<<" "<<v[c]<<" ";
                        a=n;
                        b=n;
                        break;
                    }
                }
            }
        }
    }
    return 0;
}