Pagini recente » Cod sursa (job #832176) | Cod sursa (job #1822281) | Cod sursa (job #1847541) | Cod sursa (job #2653141) | Cod sursa (job #1111405)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
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(){}
};
class comp1{
public: bool operator()(triplet a, triplet b){
return a.s<b.s;
};
};
bool cmp1(triplet t1, triplet t2 ){ return t1.s<t2.s;}
bool cmp2(triplet t1, int s){ return t1.s<s;}
int n, s;
vector<int> v;
set<triplet, comp1> 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);
}
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.insert(triplet(v[i], v[j], v[k]));
set<triplet>::iterator it, it2;
triplet cautat;
it=t.begin();
while(it!=t.end())
{
cautat.s=s-it->s;
it2=t.find(cautat);
if(it2!=t.end())
{afisT(*it), afisT(*it2); return 0;}
it++;
}
g<<"-1";
return 0;
}