Cod sursa(job #2932139)

Utilizator Luka77Anastase Luca George Luka77 Data 1 noiembrie 2022 23:03:13
Problema Loto Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("loto.in");
ofstream fout("loto.out");

const int NMAX = 105;
int n, s, arr[NMAX], S;

inline int b_search(int target)
{
    int st = 1, dr = n;
    while(st <= dr)
    {
        int mid = (st + dr)/2;
        if(arr[mid] == target)
            return target;
        if(arr[mid] > target)
            dr = mid - 1;
        if(arr[mid] < target)
            st = mid + 1;
    }
    return 0;
}

inline void solve()
{
    sort(arr+1, arr+n+1);
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=n;++j)
        {
            for(int k=1;k<=n;++j)
            {
                for(int l=1;l<=n;++l)
                {
                    for(int m=1;m<=n;++m)
                    {
                        int c = b_search(S - (arr[i] + arr[j] + arr[k] + arr[l] + arr[m]));
                        if(c)
                        {
                            fout << arr[i] << ' ' << arr[j] << ' ' << arr[k] << ' ' << arr[l] << ' ' << arr[m] << ' ' << c;
                            return;
                        }
                    }
                }
            }
        }
    }
    fout << -1;
}

int main()
{
    fin >> n >> S;
    for(int i=1;i<=n;++i)
        fin >> arr[i];
    solve();
}