Cod sursa(job #2747526)

Utilizator atudoreimirunaAtudorei Miruna Gabriela atudoreimiruna Data 29 aprilie 2021 12:40:48
Problema Loto Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <iostream>
#include <fstream>
#include <unordered_map>

using namespace std;

ifstream fin ("loto.in");
ofstream fout ("loto.out");

struct numere {
    int x, y, z;
} nr;

unordered_map <int, numere> hmap;
unordered_map <int, numere> :: iterator itr; 

int a[110];
int n, s;

int main()
{
    int S = 0;
    fin >> n >> s;
    for ( int i = 1; i <= n; i++ )
        fin >> a[i];

    // sume de cate 3 elemente ( numerele se pot repeta )
    for ( int i = 1; i <= n; i++ )
        for ( int j = i; j <= n; j++ )
            for ( int k = j; k <= n; k++ )
            {
                S = a[i] + a[j] + a[k];
                nr.x = a[i];
                nr.y = a[j];
                nr.z = a[k];
                hmap[S] = nr;   // adaugam in map
            }
    
    bool ok = 0;
    int S2;
    for ( auto itr = hmap.begin(); itr != hmap.end(); itr++ )
    {
        // cautam in map un tuplu care sa aiba suma "s - itr->first"
        S2 = s - itr->first;
        if ( hmap.count(S2) > 0 )
        {
            // daca am gasit afisam cele 6 elemente
            fout << itr->second.x << " " << itr->second.y << " " << itr->second.z << " ";
            fout << hmap[S2].x << " " << hmap[S2].y << " " << hmap[S2].z;
            ok = 1;
        }
    }
    
    return 0;
}