Cod sursa(job #3239490)

Utilizator Dia3141Costea Diana Stefania Dia3141 Data 5 august 2024 21:23:00
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <algorithm>
#include <unordered_map>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
int n,sum,s,v[101],x[5];
bool ok;
struct Hash{
    bool fr;
    int a,b,c;
};
unordered_map<int,Hash>mp;
void back(int k){
    if(k==4&&ok){
        if(!mp[s].fr)
            mp[s]={1,v[x[1]],v[x[2]],v[x[3]]};
        if(mp[sum-s].fr){
            cout<<mp[sum-s].a<<" "<<mp[sum-s].b<<" "<<mp[sum-s].c<<" "<<v[x[1]]<<" "<<v[x[2]]<<" "<<v[x[3]];
            ok=0;
        }
        return ;
    }
    for(int i=x[k-1];i<=n&&ok;i++)
        if(v[i]+s<=sum){
            s+=v[i];
            x[k]=i;
            back(k+1);
            s-=v[i];
        }
}
int main()
{
    cin>>n>>sum;
    for(int i=1;i<=n;i++)
        cin>>v[i];
    sort(v+1,v+n+1);
    x[0]=1;
    ok=1;
    back(1);
    if(ok)
        cout<<-1;
    return 0;
}