Cod sursa(job #2428762)

Utilizator cosceexcosceex cosceex Data 6 iunie 2019 11:58:44
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<bits/stdc++.h>

using namespace std;

int v[100],s,ok,i,j,k,l,m,o,n;

bool desc(int a ,int b){
    return a>b;
}
int main(){
    freopen("loto.in","r",stdin);
	scanf("%d %d",&n,&s);
	for(i=0;i<n;i++)
		scanf("%d",&v[i]);
	fclose(stdin);
	freopen("loto.out","w",stdout);
    sort(v,v+n,desc);
	ok=1;
	for(i=0;ok&&i<n&&v[i]*6>=s;i++)
        for(j=i;ok&&j<n&&v[i]+v[j]*5>=s&&v[i]+v[n-1]*5<=s;j++)
            for(k=j;ok&&k<n&&v[i]+v[j]+v[k]*4>=s&&v[i]+v[j]+v[n-1]*4<=s;k++)
                for(l=k;ok&&l<n&&v[i]+v[j]+v[k]+v[l]*3>=s&&v[i]+v[j]+v[k]+v[n-1]*3<=s;l++)
                    for(m=l;ok&&m<n&&v[i]+v[j]+v[k]+v[l]+v[m]*2>=s&&v[i]+v[j]+v[k]+v[l]+v[n-1]*2<=s;m++)
                        for(o=m;ok&&o<n&&v[i]+v[j]+v[k]+v[l]+v[m]+v[o]>=s;o++)
                            if(v[i]+v[j]+v[k]+v[l]+v[m]+v[o]==s){
                                printf("%d %d %d %d %d %d",v[i],v[j],v[k],v[l],v[m],v[o]);
                                return 0;
                            }
    printf("-1");
	fclose(stdin);
	return 0;
}