Pagini recente » Cod sursa (job #2889470) | Cod sursa (job #1439072) | Cod sursa (job #2662796) | Cod sursa (job #64662) | Cod sursa (job #2730910)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f ("loto.in");
ofstream g ("loto.out");
int main()
{
int N,S,i,j,k,sum_cautat;
bool ok;
unordered_map<int,int> dict;
dict.clear();
f>>N>>S;
vector <int> v(N);
vector<int> sol;
for (i=0; i<N; i++)
f>>v[i];
sort (v.begin(),v.end());
for (i=0; i<N; i++)
for (j=0; j<N; j++)
for (k=0; k<N; k++)
dict[v[i]+v[j]+v[k]]=1;
for (i=0; i<N && !ok; i++)
for (j=0; j<N && !ok; j++)
for (k=0; k<N && !ok; k++)
if (dict[S-v[i]-v[j]-v[k]])
{
ok=1;
sum_cautat=S-v[i]-v[j]-v[k];
sol.push_back(v[i]);
sol.push_back(v[j]);
sol.push_back(v[k]);
}
if (!ok)
g<<-1;
else
{
ok=false;
for (i=0; i<N && !ok; i++)
for (j=i; j<N && !ok; j++)
for (k=j; k<N && !ok; k++)
if (v[i]+v[j]+v[k]==sum_cautat)
{
sol.push_back(v[i]);
sol.push_back(v[j]);
sol.push_back(v[k]);
ok=true;
}
sort(sol.begin(),sol.end());
for (i=0; i<6; i++)
g<<sol[i]<<" ";
}
}