Cod sursa(job #2034137)

Utilizator LXGALXGA a LXGA Data 7 octombrie 2017 14:58:19
Problema Loto Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.77 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> x;
ifstream cin("loto.in");
ofstream cout("loto.out");
int cautbin(int l,int r,int k)
{
    if(l==r)
    {
        if(x[l]==k)
            return 1;
        else
            return 0;
    }
    int mid=l+(r-l)/2;
    if(k<=x[mid]) return cautbin(l,mid,k);
    else return cautbin(mid+1,r,k);

}
int main()
{
    int n,s,i,j,l,i2,i3,i4;
    cin>>n>>s;
    int v[n+1];
    for(i=1;i<=n;i++)
        cin>>v[i];
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            for(l=1;l<=n;l++)
            {
                x.push_back(v[i]+v[j]+v[l]);
            }
        }
    }
    sort(x.begin(),x.end());
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            for(l=1;l<=n;l++)
            {
                if(cautbin(0,x.size()-1,s-v[i]-v[j]-v[l])==1)
                {

                    for(i2=1;i2<=n;i2++)
                    {
                        for(i3=1;i3<=n;i3++)
                        {
                            for(i4=1;i4<=n;i4++)
                            {
                                if(v[i]+v[j]+v[l]+v[i2]+v[i3]+v[i4]==s)
                                {
                                    cout<<v[i]<<" ";
                                    cout<<v[i2]<<" ";
                                    cout<<v[i3]<<" ";
                                    cout<<v[j]<<" ";
                                    cout<<v[l]<<" ";
                                    cout<<v[i4]<<" ";
                                    return 0;
                                }
                            }
                        }
                    }
                    return 0;
                }
            }
        }
    }
    cout << "-1";
    return 0;
}