Pagini recente » Istoria paginii utilizator/ubb_hai_ca_stiu | Cod sursa (job #339949) | Istoria paginii utilizator/dianad13 | Cod sursa (job #2893103) | Cod sursa (job #490506)
Cod sursa(job #490506)
#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];
int 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){
if(ss==a[(st+dr)/2].s){
printf("%d %d %d %d %d %d\n",a[i].s1,a[i].s2,a[i].s3,a[(st+dr)/2].s1,a[(st+dr)/2].s2,a[(st+dr)/2].s3);
return 0;
}
else
if(ss>a[(st+dr)/2].s)
st=(st+dr)/2-1;
else
dr=(st+dr)/2+1;
}
}
printf("-1\n");
return 0;}