Cod sursa(job #1528425)

Utilizator OFY4Ahmed Hamza Aydin OFY4 Data 19 noiembrie 2015 17:57:20
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
# include <fstream>
# include <algorithm>

# define a first
# define b second

using namespace std;

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

pair < pair < int , int > , pair <int , int> >v[1000007];

int n,s,f[1007],mij,st,dr,x,k;

int main () {
	
    fin>>n>>s;

    for(int i=1;i<=n;i++){
	
        fin>>f[i];
    }
    for(int i=1;i<=n;i++){
	
        for(int j=i;j<=n;j++){
	
            for(int t=j;t<=n;t++){
	
                v[++k].a.a=f[i]+f[j]+f[t];
                v[k].a.b=f[i];
                v[k].b.a=f[j];
                v[k].b.b=f[t];
            }
        }
    }

    sort(v+1,v+k+1);

    for(int i=1;i<=k;i++){
	
        x=s-v[i].a.a;
        st=i;
        dr=k;

        while(st<=dr){
	
            mij=(st+dr)/2;

            if(v[mij].a.a<x){
                st=mij+1;
            }
            else{
	
                dr=mij-1;
			}
        }

        if(v[st].a.a==x){
	
            fout<<v[i].a.b<<" "<<v[i].b.a<<" "<<v[i].b.b<<" "<<v[st].a.b<<" "<<v[st].b.a<<" "<<v[st].b.b;

            return 0;
        }
    }

    fout<<-1;

    return 0;
}