Cod sursa(job #2748193)

Utilizator linte_robertLinte Robert linte_robert Data 29 aprilie 2021 23:24:22
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.64 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
 int main(){
    ifstream fin("loto.in");
    ofstream fout("loto.out");
    vector < vector < vector < int > > > hash_sume;
    int suma, n;
    fin >> n >> suma;
    vector < int > numere;
    for( int i = 0; i < n; i++ ){
        int x;
        fin >> x;
        numere.push_back(x);
    }
    for( int i = 0; i <= suma; i++ ){
        vector < vector < int > > v;
        hash_sume.push_back(v);
    }
    for( int i = 0; i < n; i++ ){
        for( int j = 0; j < n; j++ ){
            for( int k = 0; k < n; k++ ){
                if( numere[i] + numere[j] + numere[k] <= suma ){
                    vector < int > elemente;
                    elemente.push_back(numere[i]);
                    elemente.push_back(numere[j]);
                    elemente.push_back(numere[k]);
                    hash_sume[ numere[i] + numere[j] + numere[k] ].push_back(elemente);
                }
            }
        }
    }
    int ok = 0;
    for( int i = 0; i < hash_sume.size() && ok == 0; i++ ){
        for( int j = 0; j < hash_sume[i].size() && ok == 0; j++ ){
            if( hash_sume[suma-i].size() > 0 ){
                    for( int k = 0; k < hash_sume[suma-i].size() && ok== 0; k++ ){
                        fout << hash_sume[i][j][0] << " " << hash_sume[i][j][1] << " " << hash_sume[i][j][2] << " ";
                        fout << hash_sume[suma-i][k][0] << " " << hash_sume[suma-i][k][1] << " " << hash_sume[suma-i][k][2];
                        ok = 1;
                    }
            }
        }
    }
    if( ok == 0 ) fout << -1;
 }