Pagini recente » Cod sursa (job #84790) | Cod sursa (job #1675244) | Cod sursa (job #805814) | Cod sursa (job #510992) | Cod sursa (job #1726607)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
struct s_elem
{
int s,x1,x2,x3;
};
vector<int> v;
vector<s_elem> val;
inline bool comp(s_elem X, s_elem Y)
{
return X.s < Y.s;
}
int main()
{
int n,i,j,k;
long s,x;
ifstream f("loto.in");
ofstream g("loto.out");
f>>n;
f>>s;
for(i = 1; i <= n; i++)
f>>x,v.push_back(x);
f.close();
v.clear();
for(i = 0; i < n; i++)
for(j = i; j < n; j++)
for(k = j; k < n; k++)
val.push_back({v[i]+v[j]+v[k], v[i], v[j], v[k]});
sort(val.begin(),val.end(),comp);
for(i = 0; i <val.size(); i++ )
{
int caut = s-val[i].s;
int hi = val.size()-1,lo = i;
while( hi - lo >1)
{
int mid = lo + (hi-lo)/2;
if(val[mid].s < caut)
lo = mid;
else if(val[mid].s > caut)
hi = mid;
else
{
v.push_back(val[i].x1);v.push_back(val[i].x2);v.push_back(val[i].x3);v.push_back(val[mid].x1);v.push_back(val[mid].x2);v.push_back(val[mid].x3);
sort(v.begin(),v.end());
g<<v[0]<<" "<<v[1]<<" "<<v[2]<<" "<<v[3]<<" "<<v[4]<<" "<<v[5];
g.close();
return 0;
}
}
}
if(val.back().s * 2 == s)
{
g<<val.back().x1<<" "<<val.back().x1<<" "<<val.back().x1<<" "<<val.back().x1<<" "<<val.back().x1<<" "<<val.back().x1;
return 0;
}
g<<"-1";
g.close();
return 0;
}