Pagini recente » Cod sursa (job #844730) | Cod sursa (job #1723977) | Cod sursa (job #2109197) | Cod sursa (job #1898114) | Cod sursa (job #2894858)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
vector <int> v1;
vector <int> v2;
int main() {
int N, S, i, j, k, l, m, x;
bool ok = false, ok1 = false;
f >> N >> S;
for (i = 0; i < N; i++)
{
f >> x;
v1.push_back(x);
}
for(i=0; i<N; i++)
for(j=0; j<N; j++)
for(k=0; k<N; k++)
{
x = v1[i] + v1[j] + v1[k];
v2.push_back(x);
}
sort(v2.begin(), v2.end());
i = 0;
j = v2.size()-1;
while(i <= j)
{
if(v2[i] + v2[j] == S)
{
for(l=0; l<N; l++)
{
if(ok1) break;
for (m = 0; m < N; m++)
{
if (ok1) break;
for (k = 0; k < N; k++)
if (v1[l] + v1[m] + v1[k] == v2[i])
{
g << v1[l] << ' ' << v1[m] << ' ' << v1[k] << ' ';
ok1 = true;
break;
}
}
}
ok1 = false;
for(l=0; l<N; l++)
{
if(ok1) break;
for (m = 0; m < N; m++)
{
if (ok1) break;
for (k = 0; k < N; k++)
if (v1[l] + v1[m] + v1[k] == v2[j])
{
g << v1[l] << ' ' << v1[m] << ' ' << v1[k] << ' ';
ok1 = true;
break;
}
}
}
ok = true;
break;
}
else if(v2[i] + v2[j] < S)
i++;
else j++;
}
if(!ok)
g << -1;
}