Pagini recente » Cod sursa (job #1648305) | Cod sursa (job #372668) | Cod sursa (job #1741757) | Cod sursa (job #2053276) | Cod sursa (job #201505)
Cod sursa(job #201505)
#include <stdio.h>
#include <algorithm>
using namespace std;
int n,s;
int v[105],a[1000005];
bool caut(int x){
int st=1,dr=a[0],m;
while(st<dr){
m=(st+dr)/2;
if(a[m]==x) return true;
else if(a[m]>x) dr=m;
else st=m+1;
}
return false;
}
int main(){
int i,j,k,s1=0,s2=0,x1,x2,x3,x4,x5,x6;
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
if(v[i]+v[j]+v[k]<s)
a[++a[0]]=v[i]+v[j]+v[k];
sort(a+1,a+a[0]+1);
for(i=1;i<=a[0];i++)
if(caut(s-a[i])) {
s1=a[i];
s2=s-a[i];
break;
}
if(!s1 && !s2) {
printf("-1");
return 0;
}
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++){
if(v[i]+v[j]+v[k]==s1){
x1=v[i];x2=v[j];x3=v[k];
}
if(v[i]+v[j]+v[k]==s2){
x4=v[i];x5=v[j];x6=v[k];
}
}
printf("%d %d %d %d %d %d",x1,x2,x3,x4,x5,x6);
}