Pagini recente » Cod sursa (job #2958565) | Cod sursa (job #2641068) | Cod sursa (job #1843266) | Cod sursa (job #2798316) | Cod sursa (job #1111509)
#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(){}
};
bool cmp1(triplet a, triplet b){
return a.s<b.s;
};
int n, s;
int v[101];
vector<triplet> t;
ofstream g("loto.out");
void afisT(triplet t){ g<<t.a<<" "<<t.b<<" "<<t.c<<" ";}
int main(){
ifstream f("loto.in");
f>>n>>s;
for(int i=0;i<n;i++)
f>>v[i];
f.close();
for(int i=0; i<n; i++)
for(int j=i; j<n; j++)
for(int k=j; k<n; k++)
t.push_back(triplet(v[i], v[j], v[k]));
sort(t.begin(), t.end(), cmp1);
vector<triplet>::iterator it, it2;
triplet cautat;
it=t.begin();
while(it!=t.end())
{
cautat.s=s-it->s;
it2 = lower_bound(t.begin(), t.end(), cautat, cmp1);
if(it2->s + it->s ==s)
{
afisT(*it), afisT(*it2);
g.close();
return 0;
}
it++;
}
g<<"-1";
g.close();
return 0;
}