Pagini recente » Monitorul de evaluare | Cod sursa (job #1218024) | Cod sursa (job #1302530) | Cod sursa (job #2535379) | Cod sursa (job #2735080)
#include <iostream>
#include <queue>
#include <unordered_map>
#include <fstream>
using namespace std;
struct threeNums {
int num1;
int num2;
int num3;
};
unordered_map<int, threeNums> d;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, sum;
void run(vector<int> nums) {
for (int i : nums) {
for (int j : nums) {
for (int z :nums) {
int value = i+j+z;
d[value].num1 = i;
d[value].num2 = j;
d[value].num3 = z;
}
}
}
}
void reRun(vector<int> nums) {
int value;
for (int i : nums) {
for (int j : nums) {
for (int z : nums) {
value = sum - i - j - z;
if (d.find(value) != d.end()) {
fout << i << ' ' << j << ' ' << z << ' ' << d[value].num1 << ' ' << d[value].num2 << ' ' << d[value].num3;
return;
}
}
}
}
fout << -1;
return;
}
int main() {
fin >> n;
fin >> sum;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
fin >> nums[i];
}
run(nums);
reRun(nums);
return 0;
}