Pagini recente » Cod sursa (job #1194913) | Cod sursa (job #2102244) | Cod sursa (job #2875111) | Cod sursa (job #1041774) | Cod sursa (job #1111374)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct triplet{
int a, b, c, s;
triplet(int x, int y, int z){
a=x; b=y; c=z; s=x+y+z;
}
triplet(){}
};
int n, s;
vector<int> v;
vector<triplet> t;
ofstream g("loto.out");
void citire(){
ifstream f("loto.in");
f>>n>>s;
while(f>>n)
v.push_back(n);
n=v.size();
v.resize(n);
}
bool cmp1(triplet t1, triplet t2 )
{
return t1.s<t2.s;
}
bool cmp2(triplet t1, int s)
{
return t1.s<s;
}
void afisT(triplet t){
g<<t.a<<" "<<t.b<<" "<<t.c<<" ";
}
int main(){
citire();
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
for(int k=0;k<n;k++)
t.push_back(triplet(v[i], v[j], v[k]));
sort(t.begin(), t.end(), cmp1);
vector<triplet>::iterator it=t.begin();
int l=(t.size()+1)/2;
for(int i=0;i<=l;i++)
{
it=lower_bound(t.begin(), t.end(), s-t[i].s, cmp2);
if(it->s + t[i].s==s)
{afisT(*it), afisT(t[i]); return 0;}
}
g<<"-1";
return 0;
}