Cod sursa(job #2438970)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 14 iulie 2019 14:55:03
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
int n,s,a[110];
bool ok;
vector<pair<int,pair<int,pair<int,int>>>> v[12300];
const int mod=12289;
void add(int n,int i,int j,int k)
{
    int r=n%mod;
    v[r].push_back({n,{a[i],{a[j],a[k]}}});
}
void Find(int n,int i,int j,int k,bool &ok)
{
    int r=n%mod;
    int sz=v[r].size();
    for(int it=0;it<sz;it++)
        if(n==v[r][it].first)
        {
            ok=1;
            out<<a[i]<<" "<<a[j]<<" "<<a[k]<<" "<<v[r][it].second.first<<" "<<v[r][it].second.second.first<<" "<<v[r][it].second.second.second;
            return;
        }
}
int main()
{
     in>>n>>s;
     for(int i=1;i<=n;i++) in>>a[i];
     for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
         for(int k=1;k<=n;k++)
           if(a[i]+a[j]+a[k]<s) {
            ok=0;
            add(a[i]+a[j]+a[k],i,j,k);
            Find(s-a[i]-a[j]-a[k],i,j,k,ok);
            if(ok) return 0;
           }
     out<<-1;
}