Pagini recente » Cod sursa (job #814006) | Cod sursa (job #1378868) | Cod sursa (job #1415553) | Cod sursa (job #627163) | Cod sursa (job #3131894)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, s;
fin >> n >> s;
vector<int> v(n + 1);
for (int i = 1; i <= n; i++)
fin >> v[i];
vector<int> suma;
for (int i = 1; i <= n; i++)
for (int j = i; j <= n; j++)
for (int k = j; k <= n; k++)
suma.push_back(v[i] + v[j] + v[k]);
sort(suma.begin(), suma.end());
for (int i = 0; i < suma.size(); i++)
{
int s1 = s - suma[i];
int l = 0, r = suma.size() - 1;
while (l <= r)
{
int mid = (l + r) / 2;
if (suma[mid] == s1)
{
fout << v[i / (n * n) + 1] << " " << v[(i / n) % n + 1] << " " << v[i % n + 1] << " ";
fout << v[mid / (n * n) + 1] << " " << v[(mid / n) % n + 1] << " " << v[mid % n + 1] << '\n';
return 0;
}
if (suma[mid] < s1)
l = mid + 1;
else
r = mid - 1;
}
}
fout << -1 << '\n';
return 0;
}