Pagini recente » Cod sursa (job #274902) | Cod sursa (job #1897500) | Cod sursa (job #695525) | Cod sursa (job #164621) | Cod sursa (job #2660670)
#include <fstream>
#include <algorithm>
#include <vector>
#define s first
#define x second.first
#define y second.second.first
#define z second.second.second
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
typedef pair <int, pair<int, pair <int, int> > > myPair;
vector<myPair> sol;
int v[110], st, dr, mid, n, S, i, j, k, p;
bool cmp(myPair &a, const myPair &b) {
return a.first < b.first;
}
int main() {
fin >> n >> S;
for (i = 0; i < n; i++)
fin >> v[i];
for (i = 0; i < n; i++)
for (j = i; j < n; j++)
for (k = j; k < n; k++) {
sol.push_back(make_pair(v[i] + v[j] + v[k], make_pair(v[i], make_pair(v[j], v[k]))));
}
sort(sol.begin(), sol.end());
for (i = 0; i < sol.size(); i++) {
auto index = lower_bound(sol.begin(), sol.end(), make_pair(S - sol[i].s, make_pair(0, make_pair(0, 0))), cmp);
if (index != sol.end() && index->s + sol[i].s == S) {
fout << sol[i].x << " " << sol[i].y << " " << sol[i].z << " " << index->x << " " << index->y << " " << index->z;
return 0;
}
}
fout << -1;
}