Cod sursa(job #2809441)

Utilizator DordeDorde Matei Dorde Data 27 noiembrie 2021 00:09:51
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int const N = 101;
int v [N];
struct cv{
    int f , t , s;
    cv(){
        f = t = s = 0;
    }
    cv(int a , int b , int c){
        f = a , t = b , s = c;
    }
};
cv tie (int a , int b , int c){
    return cv(a , b , c);
}
unordered_map <int , cv> asked;
unordered_map <int , bool> is;
int main()
{
    int n , s;
    fin >> n >> s;
    for(int i = 1 ; i <= n ; ++ i)
        fin >> v [i];
    for(int i = 1 ; i <= n ; ++ i)
        for(int j = 1 ; j <= n ; ++ j)
            for(int k = 1 ; k <= n ; ++ k){
                asked [s - v[i] - v[j] - v[k]] = {i , j , k};
                is [s - v[i] - v[j] - v[k]] = true;
            }
    for(int i = 1 ; i <= n ; ++ i)
        for(int j = 1 ; j <= n ; ++ j)
            for(int k = 1 ; k <= n ; ++ k)
                if (is[v[i] + v[j] + v[k]]){
                    fout << v[i] << ' ' << v[j] << ' ' << v[k] << ' ';
                    int a , b , c;
                    tie(a , b , c) = asked[v [i] + v [j] + v [k]];
                    fout << v[a] << ' ' << v[b] << ' ' << v[c] << '\n';
                    return 0;
                }
    fout << "-1\n";
    fin.close();
    fout.close();
    return 0;
}