Cod sursa(job #2677618)

Utilizator RazvanLazar2004Lazar Razvan Gabriel RazvanLazar2004 Data 26 noiembrie 2020 21:40:32
Problema Loto Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.75 kb
#include <fstream>
#include <algorithm>
using namespace std;
long long int v[100];
int main()
{
    ifstream in("loto.in");
    ofstream out("loto.out");
    long long int n,s,p=0,c=1;
    in>>n>>s;
    while(c*2<=n){
        c*=2;
    }
    for(long long int i=1;i<=n;i++){
        in>>v[i];
    }
    sort(v+1,v+n);
    long long int i,j,k,l,m,ales;
    if(v[1]*6<=s && v[n]*6>=s){
        for(i=1;i<=n;i++){
            for(j=i;j<=n;j++){
                for(k=j;k<=n;k++){
                    for(l=k;l<=n;l++){
                        for(m=l;m<=n;m++){
                            long long int a=s-v[i]-v[j]-v[k]-v[l]-v[m];
                            if(a>=v[m]){
                                long long int r=0;
                                for(int g=c;g>0;g/=2){
                                    if(v[r+g]<=a && r+g<=n){
                                        r+=g;
                                    }
                                }
                                if(v[r]==a){
                                    ales=r;
                                    p=1;
                                    break;
                                }
                            }
                        }
                        if(p==1){
                            break;
                        }
                    }
                    if(p==1){
                        break;
                    }
                }
                if(p==1){
                    break;
                }
            }
            if(p==1){
                break;
            }
        }
    }
    if(p==0){
        out<<-1;
    }else{
        out<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<v[l]<<" "<<v[m]<<" "<<v[ales];
    }
}