Pagini recente » Cod sursa (job #395657) | Cod sursa (job #1811889) | Cod sursa (job #2707356) | Cod sursa (job #2788180) | Cod sursa (job #3000991)
#include <algorithm>
#include <fstream>
#include <vector>
#define FAST ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define pb push_back
using namespace std;
using ll=long long;
using vl=vector<ll>;
ifstream cin("loto.in");
ofstream cout("loto.out");
struct le3{
ll sum;
ll a,b,c;
bool operator< (const le3 o) const{
return sum<o.sum;
}
};
vl v;
ll st,dr,mij;
ll n,s,i,j,k;
vector<le3> triplete;
int main()
{
FAST
cin>>n>>s;
v.resize(n);
for(auto &i:v)
cin>>i;
for(i=0; i<n; i++)
for(j=i; j<n; j++)
for(k=j; k<n; k++)
triplete.pb({v[i]+v[j]+v[k],v[i],v[j],v[k]});
sort(triplete.begin(),triplete.end());
for(auto i:triplete)
{
st=0,dr=triplete.size()-1;
while(st<=dr)
{
mij=(st+dr)/2;
if(triplete[mij].sum==s-i.sum)
{
cout<<i.a<<' '<<i.b<<' '<<i.c<<' '<<triplete[mij].a<<' '<<triplete[mij].b<<' '<<triplete[mij].c<<'\n';
return 0;
}
if(triplete[mij].sum>s-i.sum)
dr=mij-1;
else
st=mij+1;
}
}
cout<<"-1\n";
return 0;
}