Pagini recente » Cod sursa (job #2429591) | Cod sursa (job #1980990) | Cod sursa (job #8593) | Cod sursa (job #2278930) | Cod sursa (job #3131869)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(1010000);
vector<int> numbers(101);
int n;
ifstream fin("loto.in");
ofstream fout("loto.out");
void printResult(int index) {
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
for (int k = j; k < n; k++) {
if (solution[index] == numbers[i] + numbers[j] + numbers[k]) {
fout << numbers[i] << " " << numbers[j] << " " << numbers[k] << " ";
return;
}
}
}
}
}
int main() {
int sum;
fin >> n >> sum;
long long int count = 0;
for (int i = 0; i < n; i++)
fin >> numbers[i];
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
for (int k = j; k < n; k++) {
solution[count++] = numbers[i] + numbers[j] + numbers[k];
}
}
}
sort(solution.begin(), solution.begin() + count);
int i = 0, j = count - 1;
bool found = false;
while (i <= j) {
if (solution[i] + solution[j] == sum) {
printResult(i);
printResult(j);
found = true;
break;
}
while (solution[i] + solution[j] > sum) {
j--;
}
while (solution[i] + solution[j] < sum) {
i++;
}
}
if (!found)
fout << "-1";
return 0;
}