Pagini recente » Cod sursa (job #2214970) | Cod sursa (job #2705481) | Cod sursa (job #3350706) | Cod sursa (job #927261) | Cod sursa (job #3307119)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct com {long long sum;int a,b,c;};
bool comp(const com &a,const com &b) {
return a.sum<b.sum;}
int main()
{int n,s;
fin>>n>>s;
vector<long int> v(n);
vector<com> sums;
for(int i=0;i<n;i++)
fin>>v[i];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
for(int z=0;z<n;z++)
sums.push_back({v[i] + v[j] + v[z], (int)v[i], (int)v[j], (int)v[z]});
sort(sums.begin(),sums.end(),comp);
/*for(int i=0;i<(int)sums.size();i++)
cout<<sums[i].sum<<" ";*/
for(int i=0;i<(int)sums.size();i++) {
int st=0,dr=sums.size()-1;
while(st<=dr) {
long long c=s-sums[i].sum;
int m=(st+dr)/2;
if(sums[m].sum==c) {fout<<sums[i].a<<" "<<sums[i].b<<" "<<sums[i].c<<" "<<sums[m].a<<" "<<sums[m].b<<" "<<sums[m].c;return 0;}
if(sums[m].sum<s-(int)sums[i].sum) st=m+1;
else dr=m-1;
}
}
fout<<-1;return 0;
}