Pagini recente » Cod sursa (job #233218) | Cod sursa (job #342317) | Cod sursa (job #1282086) | Cod sursa (job #898144) | Cod sursa (job #1066420)
#include<fstream>
#include<algorithm>
#include<stdio.h>
using namespace std;
int i, j, n, k, p, u, nr, ok, s, m, v[103];
struct cub{
int s;
int a;
int b;
int c;
};
cub t[1000003];
int cmp (cub a, cub b){
return a.s<b.s;
}
FILE*fin=fopen("loto.in","r");
ofstream fout("loto.out");
int main(){
fscanf(fin,"%d%d", &n, &s);
for(i=1; i<=n; i++)
fscanf(fin,"%d", &v[i]);
for(i=1; i<=n; i++)
for(j=i; j<=n; j++)
for(k=j; k<=n; k++){
t[++nr].s=v[i]+v[j]+v[k];
t[nr].a=v[i];
t[nr].b=v[j];
t[nr].c=v[k];
}
sort(t+1, t+nr+1, cmp);
for(i=1; i<=nr && ok==0; i++){
if(t[i].s<=s){
p=i; u=nr;
while(p<=u){
m=p+(u-p)/2;
if(t[m].s==s-t[i].s){
fout<<t[m].a<<" "<<t[m].b<<" "<<t[m].c<<" "<<t[i].a<<" "<<t[i].b<<" "<<t[i].c<<"\n";
ok=1;
break;
}
else{
if(t[m].s>s-t[i].s)
u=m-1;
else
p=m+1;
}
}
}
else{
fout<<"-1"<<"\n";
break;
}
}
if(ok==0)
fout<<"-1";
return 0;
}