Cod sursa(job #2677618)
Utilizator | 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];
}
}