Pagini recente » Cod sursa (job #2581178) | Cod sursa (job #107122) | Cod sursa (job #2558163) | Cod sursa (job #292124) | Cod sursa (job #479403)
Cod sursa(job #479403)
#include<cstdlib>
#include<iostream>
#include<fstream>
#include<map>
#include<vector>
std::ifstream in("loto.in");
std::ofstream out("loto.out");
int N;
int* v;
int S;
struct point3d{
int i;
int j;
int k;
};
std::map<int, point3d*>m;
point3d* form(int i, int j, int k)
{
point3d*p = new point3d;
p->i = v[i];
p->j = v[j];
p->k = v[k];
return p;
}
int main(int argc, char *argv[])
{
in >> N;
v = (int*) malloc(N * sizeof(int));
in >> S;
for(int i = 0; i < N; i++)
{
in >> v[i];
}
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
for(int k = 0; k < N; k++)
m[v[i] + v[j] + v[k]] = form(i, j , k);
for(std::map<int, point3d*>::iterator it = m.begin(); it != m.end(); it++)
{
std::map<int, point3d*>::iterator f = m.find(S - it->first);
if(f != m.end())
{
point3d* second_point = f->second;
out << it->second->i << " " << it->second->j << " " << it->second->k << " "
<< second_point->i << " " << second_point->j << " " << second_point->k;
return 0;
}
}
out << "-1";
in.close();
out.close();
return 0;
}