Cod sursa(job #1895636)

Utilizator popabogdanPopa Bogdan Ioan popabogdan Data 28 februarie 2017 09:18:35
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>
#define Nmax 102

using namespace std;

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

struct Loto
{
    int i, j, k;
};
int N, S;
int A[Nmax];
map<int, Loto>M;
int i, j, k;
int main()
{
    fin >> N >> S;
    for(i = 1; i <= N; i++)
        fin >> A[i];
    sort(A + 1, A + N + 1);
    for(i = 1; i <= N; i++)
        for(j = i; j <= N; j++)
            for(k = j; k <= N && A[i] + A[j] + A[k] <= S; k++)
                M[A[i] + A[j] + A[k]] = {i, j, k};
     for(i = 1; i <= N; i++)
        for(j = i; j <= N; j++)
            for(k = j; k <= N && A[i] + A[j] + A[k] < S; k++)
                if(M.find(S - A[i] - A[j] - A[k]) != M.end())
                {
                    Loto sol = M[S - A[i] - A[j] - A[k]];
                    fout << A[i] << " " << A[j] << " " << A[k] << " " << A[sol.i] << " " << A[sol.j] << " " << A[sol.k] << "\n";
                    return 0;
                }
    fout << "-1\n";
    return 0;
}