Cod sursa(job #2739380)

Utilizator linte_robertLinte Robert linte_robert Data 8 aprilie 2021 02:18:48
Problema Loto Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.95 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#include <deque>
#include <queue>
#include <cstring>
using namespace std;
int sum(vector <int> v){
    int s = 0;
    for(int i = 0; i < v.size(); i++ ){
        s += v[i];
    }
    return s;
}
void afisare( vector < int > v ){
    for( int i = 0; i < v.size(); i++ ){
        cout << v[i] << " ";
    }
    cout << endl;
}
vector <int> concatenare(vector < int > x, vector < int > y){
    for( int i=0; i < y.size(); i++ ){
        x.push_back( y[i] );
    }
    return x;
}
int main(){
    vector < int > v;
    ifstream fin( "loto.in" );
    ofstream fout( "loto.out" );
    int suma, n;
    fin >> n;
    fin >> suma;
    for( int i = 0; i < n; i ++ ){
        int a;
        fin >> a;
        v.push_back( a );
    }
    vector < vector < int > > suma1;
    vector < vector < int > > suma2;
    vector < vector < int > > solutie;
    for( int i = 0; i < v.size(); i ++ ){
        for( int j = 0; j < v.size(); j++ ){
            if( v[i] + v[j] <= suma ){
                vector < int > x;
                x.push_back(v[i]);
                x.push_back(v[j]);
                suma1.push_back(x);
            }
        }
    }
    for( int i = 0; i < suma1.size(); i ++ ){
        for ( int j = 0; j < suma1.size(); j++ ){
            if( sum( suma1[i] ) + sum( suma1[j] ) <= suma ){
                suma2.push_back( concatenare( suma1[i], suma1[j] ) );
            }
        }
    }
    int ok = 0;
    for( int i = 0; i < suma2.size() && ok == 0; i ++ ){
        for ( int j = 0; j < suma1.size() && ok == 0; j++ ){
            if( sum( suma2[i] ) + sum( suma1[j] ) == suma ){
                solutie.push_back( concatenare( suma2[i], suma1[j] ) );
                ok = 1;
            }
        }
    }
    if ( ok == 0 ) cout << -1;
    else{
        for ( int i = 0 ; i < 6; i ++ ){
            fout << solutie[0][i] << " ";
        }
    }
}