Pagini recente » Cod sursa (job #2112909) | Cod sursa (job #72362) | Cod sursa (job #1627972) | Cod sursa (job #872632) | Cod sursa (job #1009917)
#include<iostream>
#include<fstream>
#include<map>
#include<algorithm>
#include<vector>
using namespace std;
vector<int> v;
vector<int>::iterator it, jt, kt;
ifstream f("loto.in");
ofstream g("loto.out");
int r, n, S, a, nr;
struct suma{
int a, b, c;
};
vector<int> sum;
vector<int>::iterator ist, gasit, jst;
map<int, suma> m;
map<int, int> su;
void afisare(){
g<<m[*ist].a<<' '<<m[*ist].b<<' '<<m[*ist].c<<' '<<m[S-(*ist)].a<<' '<<m[S-(*ist)].b<<' '<<m[S-(*ist)].c<<'\n';
}
int main()
{
f>>n>>S;
for(int i=0; i<n; ++i){f>>a; v.push_back(a);}
suma s1;
for(it=v.begin(); it!=v.end(); ++it)
for(jt=it; jt!=v.end(); ++jt)
for(kt=jt; kt!=v.end(); ++kt){
int y=*it+*jt+*kt;
if(m[y].a||y>=S) continue;
else{
s1.a=*it; s1.b=*jt; s1.c=*kt;
sum.push_back(y); su[y]=1; //cout<<y<<' ';
m[y]=s1;}
}
sort(sum.begin(), sum.end());
for(ist=sum.begin(); ist!=sum.end(); ++ist){
//jst=lower_bound(ist, sum.end(), S-(*ist));
if(su[S-(*ist)]){afisare(); g.close(); return 0;}
}
g<<"-1";
g.close();
return 0;
}