Cod sursa(job #2406735)

Utilizator DimaTCDima Trubca DimaTC Data 16 aprilie 2019 09:48:08
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<bits/stdc++.h>
#define N 120
#define ll long long

using namespace std;

struct lol {
    int x,y,z;
};

int n,s;
int a[N];

unordered_map<int, lol>M;
ofstream fout("loto.out");

void out(lol p, lol q) {
    fout<<a[p.x]<<" "<<a[p.y]<<" "<<a[p.z]<<" ";
    fout<<a[q.x]<<" "<<a[q.y]<<" "<<a[q.z];
}

int main() {
    ifstream cin("loto.in");
    cin>>n>>s;
    for (int i=1; i<=n; ++i) cin>>a[i];

    for (int i=1; i<=n; ++i) {
        for (int j=i; j<=n; ++j) {
            for (int k=j; k<=n; ++k) {
                int s1=a[i]+a[j]+a[k];
                if (s1>=s) continue;
                M[s1]={i,j,k};
            }
        }
    }

    for (int i=1; i<=n; ++i) {
        for (int j=i; j<=n; ++j) {
            for (int k=j; k<=n; ++k) {
                int s2=a[i]+a[j]+a[k];
                int s3=s-s2;
                if (s3<0) continue;

                if (M.find(s3)!=M.end()) {
                    out(M[s3], {i,j,k});
                    return 0;
                }
            }
        }
    } fout<<"-1";

    return 0;
}