Pagini recente » Cod sursa (job #2930379) | Cod sursa (job #836354) | Cod sursa (job #1533518) | Cod sursa (job #2531452) | Cod sursa (job #513566)
Cod sursa(job #513566)
#include<cstdio>
#include<fstream>
#include<algorithm>
using namespace std;
#define m 101
struct loto{
int s, s1,s2,s3;
};
int v[m];
int n,s,ii;
loto a[m*m*m];
bool inline compara (loto x,loto y){return x.s<y.s;}
int main ()
{
ifstream in ("loto.in");
in>>n>>s;
for(int i=1;i<=n;++i)
in>>v[i];
in.close();
freopen ("loto.out","w",stdout);
for(int i=1;i<=n;++i)
for(int j=i;j<=n;++j)
for(int k=j;k<=n;++k){
a[++ii].s=v[i]+v[j]+v[k];
a[ii].s1=v[i];
a[ii].s2=v[j];
a[ii].s3=v[k];
}
sort (a+1,a+ii+1,compara);
int st=1,dr=ii,ss;
for(int i=1;i<=ii;++i){
dr=ii+1;
st=1;
ss=s-a[i].s;
while(st<=dr){
int mj=(st+dr)>>1;
if(ss==a[mj].s){
printf("%d %d %d %d %d %d\n",a[i].s1,a[i].s2,a[i].s3,a[mj].s1,a[mj].s2,a[mj].s3);
return 0;
}
else
if(ss<a[mj].s)
dr=mj-1;
else
st=mj+1;
}
}
printf("-1\n");
return 0;}