Pagini recente » Monitorul de evaluare | Borderou de evaluare (job #156625) | Borderou de evaluare (job #1266354) | Borderou de evaluare (job #1527252) | Cod sursa (job #2742003)
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
unordered_map <int, vector<int>> ijk;
unordered_map <int, int> m;
int main()
{
int N, S, numere[105];
f >> N;
f >> S;
int c = 0;
unsigned i, j, k;
for (i = 0; i < N; i++)
f >> numere[i];
for (i = 0; i < N; i++)
for (j = 0; j < N; j++)
for (k = 0; k < N; k++)
{
ijk[numere[i] + numere[j] + numere[k]] = vector<int>{i, j, k};
}
unordered_map <int, vector<int>> :: iterator itr;
int ok = 0;
for(itr = ijk.begin(); itr != ijk.end(); itr++)
if (ijk.find(S - itr->first)!= ijk.end())
{
g << numere[ijk[itr->first][0]] << " " <<numere[ijk[itr->first][1]] <<" "<< numere[ijk[itr->first][2]] << " ";
g << numere[ijk[S - itr->first][0]] << " " <<numere[ijk[S - itr->first][1]] <<" "<< numere[ijk[S - itr->first][2]] << "\n";
ok = 1;
break;
}
if (!ok)
g << -1;
return 0;
}