Pagini recente » Cod sursa (job #634757) | Cod sursa (job #1351225) | Cod sursa (job #876545) | Cod sursa (job #3180791) | Cod sursa (job #2854806)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("loto.in");
ofstream fout ("loto.out");
struct st{
int summ;
int a;
int b;
int c;
};
int cmp(const st &x, const st &y){
return x.summ < y.summ;
}
st s[1000001];
int n, suma, v[101], l, x, st, dr, mid;
int main (){
fin>>n;
fin>>suma;
for(int i=1; i<=n; i++)
fin>>v[i];
for(int i=1; i<=n; i++)
for(int j=i; j<=n; j++)
for(int k=j; k<=n; k++){
l++;
s[l].summ=v[i] + v[j] + v[k];
s[l].a=v[i];
s[l].b=v[j];
s[l].c=v[k];
}
sort(s+1, s+1+l, cmp);
for(int i=1; i<=l; i++){
x=suma - s[i].summ;
st=1;
dr=l;
while(st <= dr){
mid=(st+dr)/2;
if(s[mid].summ == x){
fout<<s[mid].a<<" "<<s[mid].b<<" "<<s[mid].c<<" "<<s[i].a<<" "<<s[i].b<<" "<<s[i].c;
return 0;
}
if(s[mid].summ > x)
dr=mid-1;
else
st=mid+1;
}
}
fout<<-1;
return 0;
}