Pagini recente » Cod sursa (job #96864) | Cod sursa (job #2950008) | Cod sursa (job #247316) | Cod sursa (job #3256584) | Cod sursa (job #2739976)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;
int main() {
ifstream in("loto.in");
ofstream out("loto.out");
int n, S, x, i, j, k;
vector<int> numere;
unordered_map<int, vector<int>> myhash;
in>>n>>S;
for(i=0; i<n; i++)
{
in>>x;
numere.push_back(x);
}
for(i=0; i<n; i++)
for(j=0; j<n; j++)
for(k=0; k<n; k++)
{
int suma=numere[i]+numere[j]+numere[k];
if(suma<=S)
{ vector<int> elemente_suma;
elemente_suma.push_back(numere[i]);
elemente_suma.push_back(numere[j]);
elemente_suma.push_back(numere[k]);
myhash[suma] = elemente_suma;
}
}
// for(auto &elem:myhash)
// {cout<<elem.first<<" ";
// for(int i=0; i<elem.second.size(); i++)
// cout<<elem.second[i]<<" ";
// cout<<"\n";}
for(i=0; i<n; i++)
for(j=0; j<n; j++)
for(k=0; k<n; k++)
{
if(myhash.find(S-numere[i]-numere[j]-numere[k])!=myhash.end())
{
out<<numere[i]<<" "<<numere[j]<<" "<<numere[k]<<" "<<myhash[S-numere[i]-numere[j]-numere[k]][0]<<" "<<myhash[S-numere[i]-numere[j]-numere[k]][1]<<" "<<myhash[S-numere[i]-numere[j]-numere[k]][2];
i=n; j=n; k=n;
}
}
if(i==n)
out<<-1;
return 0;
}