Cod sursa(job #1527610)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 18 noiembrie 2015 14:26:01
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[1000009];
int n,s,f[1001],i,j,t,mij,st,dr,x,k;
int main () {
    fin>>n>>s;
    for(i=1;i<=n;i++){
        fin>>f[i];
    }
    for(i=1;i<=n;i++){
        for(j=i;j<=n;j++){
            for(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(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;
}