Cod sursa(job #916706)

Utilizator gener.omerGener Omer gener.omer Data 16 martie 2013 19:56:00
Problema Loto Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <map>
 
using namespace std;
 
#define NMAX 105
 
int N, S, A[NMAX];
map<int, vector<int> > m;
 
int main()
{
    freopen("loto.in", "rt", stdin);
    freopen("loto.out", "wt", stdout);
 
    scanf("%d %d", &N, &S);
    for(int i = 0; i < N; i++)
        scanf("%d", &A[i]);
     
    sort(A, A+N);
         
    vector<int> sums;
    for(int i = 0; i < N;++i)
        for(int j = 0; j < N; ++j)
            for(int k = 0; k < N; ++k){
                int s = A[i]+A[j]+A[k];          
                if(m.find(s) == m.end()){
                    sums.push_back(s);
					vector<int> v;
					v.push_back(A[i]);
					v.push_back(A[j]);
					v.push_back(A[k]);
					m[s] = v;
				}
            }
     
    sort(sums.begin(), sums.end());
     
    int sz = sums.size();
     
    for(int i = 0; i < sz; ++i)
    {
        if(m.find(S-sums[i]) != m.end())
        {
            vector<int> v1, v2;
            v1 = m[sums[i]], v2 = m[S-sums[i]];
            cout << v1[0] << " " << v1[1] << " " << v1[2] << " " << v2[0] << " " << v2[1] << " " << v2[2];
            return 0;
        }
    }
    printf("%d", -1);
     
    return 0;
}