Cod sursa(job #3128765)

Utilizator skphaMincu Adrian skpha Data 10 mai 2023 20:54:04
Problema Loto Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>

std::ifstream f("loto.in");
std::ofstream g("loto.out");

std::unordered_map<long long, std::pair<long long,std::vector<int>>> map;
std::vector<int> v;
int n;
long long target;
bool found = false;

void solution() {
    for(int i=0;i<n;i++)
        for(int j=i;j<n;j++)
            for(int k=j;k<n;k++) {
                std::vector<int> temp;
                temp.push_back(v[i]);
                temp.push_back(v[j]);
                temp.push_back(v[k]);
                map[v[i]+v[j]+v[k]] = std::make_pair(target - (v[i] + v[j] + v[k]),temp);
            }

    for(int i=0;i<n;i++)
        for(int j=i;j<n;j++) {
            for(int k=j;k<n;k++)
                if(v[i]+v[j]+v[k] == map[target - (v[i]+v[j]+v[k])].first) {
                    std::vector<int> temp = map[target - (v[i]+v[j]+v[k])].second;
                    g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<temp[0]<<" "<<temp[1]<<" "<<temp[2];
                    found = true;
                    return;
                }
        }
}

int main() 
{

    f>>n>>target;

    v.resize(n);

    for(int i=0;i<n;i++) f>>v[i];

    solution();

    if(!found) g<<-1;

    return 0;
}