Pagini recente » Statistici Dumitrache Vlad Ionut (vladdie12) | Atasamentele paginii Profil bosni_e_gay | Cod sursa (job #1768086) | Rating Jeican Corina Laura (cora) | Cod sursa (job #201509)
Cod sursa(job #201509)
#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;
else if(a[m]<=x) st=m+1;
else dr=m;
}
if(a[st]==x) return true;
return false;
}
int main(){
int i,j,k,s1=-1,s2=-1,x1=0,x2=0,x3=0,x4=0,x5=0,x6=0;
int gasit1=0,gasit2=0;
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==-1) {
printf("-1\n");
return 0;
}
for(i=1;i<=n && (!x1 || !x4);i++)
for(j=i;j<=n && (!x1 || !x4);j++)
for(k=j;k<=n && (!x1 || !x4);k++){
if(v[i]+v[j]+v[k]==s1 && !gasit1){
x1=v[i];x2=v[j];x3=v[k];gasit1=1;
}
if(v[i]+v[j]+v[k]==s2 && !gasit2){
x4=v[i];x5=v[j];x6=v[k]; gasit2=1;
}
}
printf("%d %d %d %d %d %d\n",x1,x2,x3,x4,x5,x6);
}