Cod sursa(job #2774360)

Utilizator Dragono63Stanciu Rares Stefan Dragono63 Data 11 septembrie 2021 13:02:38
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <fstream>
#include <unordered_map>
#define NMAX 105
 
using namespace std;
 
/***********************************/
/// INPUT / OUTPUT
 
ifstream f("loto.in");
ofstream g("loto.out");
/***********************************/
/// GLOBAL DECALARATIONS

struct Triplet
{
    int i, j, k;
};
 
/***********************************/
/// FUNCTIONS
 
void Solution();
/***********************************/
///-------------------------------------------
inline void Solution()
{
    int N, S;
    int numbers[NMAX];
    unordered_map < int, Triplet > mapa;

    f >> N >> S;
    for (int i = 1 ; i <= N ; ++ i)
        f >> numbers[i];
    
    for (int i = 1 ; i <= N ; ++ i)
    {
        for (int j = 1 ; j <= N ; ++ j)
        {
            for (int k = 1 ; k <= N ; ++ k)
            {
                int sum = numbers[i] + numbers[j] + numbers[k];
                int diff = S - sum;
                
                Triplet triplet = {numbers[i], numbers[j], numbers[k]};
                mapa[sum] = triplet;
 
                if (mapa.find(diff) != mapa.end())
                {
                    g << mapa[diff].i << " " << mapa[diff].j << " " << mapa[diff].k << " " << triplet.i << " " << triplet.j << " " << triplet.k << "\n";
                    return;
                }
            }
        }
    }
    g << -1;
}
///-------------------------------------------
int main()
{
    Solution();
    return 0;
}