Cod sursa(job #916811)

Utilizator gener.omerGener Omer gener.omer Data 16 martie 2013 21:54:30
Problema Loto Scor 75
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <map>
#include <set>

using namespace std;
 
#define NMAX 105
 
int N, S, A[NMAX];
set<int> sums;
 
void printSum(int s)
{
	for(int i = 0; i < N;++i)
        for(int j = i; j < N; ++j)
            for(int k = j; k < N; ++k)
				if(A[i] + A[j] + A[k] == s)
				{
					printf("%d %d %d ", A[i], A[j], A[k]);
					return;
				}
}
 
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);
         
    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];          
				sums.insert(s);
            }
           
	set<int>::iterator it;
    
	for (it=sums.begin(); it!=sums.end(); ++it)
    {
        if(sums.find(S-(*it)) != sums.end())
        {
			printSum(*it);
			printSum(S-(*it));
            return 0;
        }
    }
    printf("%d", -1);
     
    return 0;
}